$ _SESSION没有跨越php页面

时间:2014-03-17 18:52:12

标签: php mysql session


我的php网站中的$_SESSION函数有问题。我设置了该功能,然后尝试在另一个页面中访问它,但它只是空白。

这是我设置login.php

的文件$_SESSION
<?php
session_start();
?>
<html>
    <?php
    $email = $_POST['email']; 
    $password = $_POST['password'];
    $con = mysqli_connect("host","user","pass","db");
if (!$con)
  {
  die('Could not connect: ' . mysqli_error());
  }

  if ($email && $password){
    $result = mysqli_query($con, "SELECT * FROM users WHERE email='$email'");
    $numrows = mysqli_num_rows($result);

    if ($numrows != 0){ 
        //username exists
        $row = mysqli_fetch_row($result);

        if ($password != $row[2]){
            print 'Incorrect password<br />';
            $error = TRUE;
        }
        else {
            //password is correct
            echo "You're in! <a href='member.php'>Click</a> here to enter member page";
            $_SESSION['email'] = $email;
        }
    }
    else {
        //email not found
        print 'Sorry, that email cannot be found.<br />';
        $error = TRUE;
    }
  }
  else {
    die('Please enter an email and password<br />');
    $error = TRUE;
  }

  if ($error){
    print '<a href=index.php>Go Back</a>';
  }
    ?>
</html>

这是member.php文件。

<?php
session_start();
if (isset($_SESSION['email'])){
    $username = $_SESSION['email'];
    echo "Your email is ";
    echo $username;
}
?>

当我按链接通过链接转到member.php页面时,该页面完全空白,可能表示$_SESSION['email']中没有任何内容。

请让我知道我哪里出错了,以及如何纠正这个问题 任何帮助将不胜感激。

如果有人想了解网站的实际运作方式,请转到here

3 个答案:

答案 0 :(得分:1)

您需要在login.php的最顶部进行此调用,而不是在中途。

 session_start();

答案 1 :(得分:1)

添加session_start();在login.php中的HTML之前设置它

答案 2 :(得分:1)

将其添加到login.php页面的最顶部:

<?php
session_start ();
?>

从PHP文档:

&#34;注意: 要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。&#34;

http://us3.php.net/session_start

如果仍然无法编辑此行:

echo "You're in! <a href='member.php'>Click</a> here to enter member page";

取而代之的是:

echo "You're in! <a href='member.php?" . htmlspecialchars(SID) . "'>Click</a> here to enter member page";

http://us3.php.net/manual/en/session.idpassing.php

ž