[英]PHP header redirect - Not Working
這是代碼:
if($rowCheck>0) {
session_start();
while($row = mysql_fetch_assoc($check)) {
$_SESSION['developer'] = $row;
}
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
}
else
echo 'Invalid Password or Email!';
除了header
之外,其他所有東西都工作正常,如果我在header
之后寫一個echo
,它將正常工作。 另外,如果我打印了location
,它將顯示正確和正確的location
。
我正在運行Mamp和MacOS。 所以它在本地主機上。
有什么幫助嗎?
正如scott所說的,您需要在標頭之后使用exit()或die()。
另外,請檢查在打開和關閉php標記之前或之后是否沒有空格,如下所示:
<?php
這將導致標頭功能失敗,因為它被視為輸入。 任何相關的包含文件也應檢查。
只需注釋所有內容,然后粘貼到header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
看看它是否有效。 如果不是,請檢查BOM編碼。
在標題行之后添加exit()或die()。 標頭功能不會停止執行腳本的其余部分。
夫妻的事。
首先,我將放置ini_set("display_errors", 1);
在PHP代碼的頁面頂部。 您可能會收到“標題已發送”錯誤。
在標頭后添加出口,以防止腳本繼續運行:
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
exit;
最后,這點沒有意義。
while($row = mysql_fetch_assoc($check)) {
$_SESSION['developer'] = $row;
}
您只需設置一次該會話變量,因此就不需要那一會兒了。 您還將其設置為等於mysql資源(您可能打算這樣做),但是也許您只需要一列即可
$row = mysql_fetch_assoc($check);
$_SESSION['developer'] = $row['username'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.