它是一個非常愚蠢的問題,但它不工作 我有一個函數來創建一個文件,如果它通過它我想它重定向用戶到X頁面..在這種情況下1 .php ....但不知何故不工作:S爲什麼?重定向不能正常工作
//Creates File, populates it and redirects the user.
if (createfile($dbFile)) {
header('Location: 1.php');
}
它是一個非常愚蠢的問題,但它不工作 我有一個函數來創建一個文件,如果它通過它我想它重定向用戶到X頁面..在這種情況下1 .php ....但不知何故不工作:S爲什麼?重定向不能正常工作
//Creates File, populates it and redirects the user.
if (createfile($dbFile)) {
header('Location: 1.php');
}
您需要exit()
發送重定向報頭之後:
if (createfile($dbFile)) {
header('Location: http://yoursite.com/path/to/1.php', true, 302);
exit();
}
否則,PHP繼續執行。如果您exit()
,客戶在撥打電話header()
後立即收到標題。
你也應該留意有關的PHP docs page for header()
這樣的警告:
HTTP/1.1需要一個絕對URI作爲參數傳遞給Location:包括方案,主機名和絕對路徑,但有些客戶接受相對URI。你通常可以使用
$_SERVER['HTTP_HOST']
,$_SERVER['PHP_SELF']
和dirname()
從一個相對自己做的絕對URI:
<?php
/* Redirect to a different page in the current directory that was requested */
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>
您是否嘗試過使用的絕對位置?
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
yipee某人正確地使用絕對URI作爲規格要求 – 2012-08-01 08:17:28
我有哪裏代碼仍在頭位置後執行的發音相似的問題。這就是爲什麼我總是做exit();之後
嘗試;
if (createfile($dbFile)) {
header("Refresh: 0; URL=1.php");
exit();
}
良好的參考..... – Baba 2012-10-21 02:01:52