PHP标头无法正常工作($ _SESSION)

时间:2013-08-22 20:29:12

标签: php session http-headers

我在登录表单中使用这段代码。

<?php

  include('session.php');

  if(isset($_SESSION['username'])) {
    header('http://www.askmephilosophy.co.nf/account.php/');
  }

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="en">
  <head>
    <title>AMP : Log In</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>

  <body>
    <?php
       echo $_SESSION['username'];
    ?>
  </body>
</html>

然而,当我尝试重定向时,它不起作用。在我的session.php文件中,我有:

session_start();

$_SESSION['username'] = 'John';

仍然会回显出名称'John',而它不会重定向到header.php页面的header()函数中。

我以前用过这个,但我看到做错了。虽然我在PHP上面有PHP代码。

有人可以向我解释为什么这不起作用吗?

2 个答案:

答案 0 :(得分:3)

header('http://www.askmephilosophy.co.nf/account.php/');并不意味着浏览器会被忽略。

你可能想在它上面添加“Location:”来重定向某个地方:

 header('Location: http://www.askmephilosophy.co.nf/account.php/');

答案 1 :(得分:1)

您需要修复要发送的标头并添加退出语句,以便重定向完成。

  if(isset($_SESSION['username'])) {
    header('Location:http://www.askmephilosophy.co.nf/account.php/');
    exit();
  }