重定向无法正常工作

时间:2012-08-01 08:09:04

标签: php jquery

这是一个非常愚蠢的问题,但不知怎的,它不起作用 我有一个创建文件的功能,如果它通过它我希望它将用户重定向到X页面..在这种情况下1.php ....但不知何故不起作用:为什么?

    //Creates File, populates it and redirects the user.
if (createfile($dbFile)) { 
    header('Location: 1.php');
        }

4 个答案:

答案 0 :(得分:4)

发送重定向标头后,您需要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;
?>

答案 1 :(得分:2)

您是否尝试过使用绝对位置?

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;

Source

答案 2 :(得分:1)

尝试;

if (createfile($dbFile)) { 
   header("Refresh: 0; URL=1.php");
   exit();
}

答案 3 :(得分:0)

我有类似的声音问题,其中代码仍然在标题位置后执行。这就是为什么我总是退出();之后