2012-04-24 63 views
0

我有檢查usernamepassword並且如果由用戶提供的證書匹配,它設置會話和用戶重定向,它適用於我的godadd託管帳戶,但登錄頁面現在我已經轉向我的主機,突然它已停止工作,下面是代碼頭(「位置:」)不是重定向

if (count($result) > 0) 
      {    
       $row= mysql_fetch_array($result); 
       $userID = $row['userID'];    
       $firstName = $row['FirstName'];   

       $isActive = $row['IsActive']; 

       if ($isActive == '1') 
       { 

        $_SESSION['user'] = $firstName;  
        //var_dump($firstName); //it gives me the right username     
        //echo" - here"; //this also gets echoed 
        header("Location: http://google.com/"); //it just dies silently 
        exit; 
       } 

請幫我找出我出了錯

+2

您是否啓用了錯誤報告? – jeroen 2012-04-24 15:47:59

+0

@ jeroen不,我沒有啓用錯誤報告 – 2012-04-24 15:50:49

+0

從那開始,看看它是否給你任何額外的信息。 – jeroen 2012-04-24 15:51:30

回答

1

你需要確保你的頭之前不輸出任何東西標籤。既然它在工作之前,我認爲這不是一個錯誤,因爲在調用標題之前你是echo'n東西,並且由於你看不到任何輸出,所以我認爲它正在輸出空格。有幾個地方的一些空白和/或不可見的字符可以潛入文件:

將光標放在你的開放的PHP標籤之前(<? or <?php)和命中退格了幾下,然後點擊刪除,刪除<然後重新輸入<。這將確保在標題之前沒有不可見的字符被輸出到瀏覽器。

然後檢查該文件包含的任何文件,並執行相同的操作,以及刪除文件結尾處的任何?>。如果這些文件包含任何其他文件,請對其重複此操作。

+0

不是一個東西.... – 2012-04-24 15:55:18

+0

@john請確保你做的一樣你用'require_once'包含的文件中的東西,以及它包含/需要的任何文件等等。然後在這些文件的末尾確保沒有輸出換行符。 (最簡單的方法是刪除'?>',如果你有'?''',你不需要在文件末尾有一個。' – Paulpro 2012-04-24 15:58:49

+0

如果你使用Notepad ++,你還必須小心不要用* UTF8編碼文件BOM * – Tibor 2012-04-24 16:05:27

1

如果你想使用header(),你肯定是沒有echo任何東西之前到它。

+0

我沒有在呼叫標題前呼應任何東西,只看到它在僅有的問題中註釋掉了檢查數據庫連接是否成功,我剛開始會話,幷包括一個php文件'require_once' – 2012-04-24 15:52:23

1

在調用header()之前是否輸出任何東西?

如果是這樣,把ob_start()在你的腳本的開頭或確保你不呼應頭之前什麼()被調用

+0

我沒有迴應標題前的任何內容 – 2012-04-24 15:52:40