PHP没有在session_start()上创建$ _SESSION变量;

Joe*_*ley 3 php apache session

我在这里设置了3页:

login.php:包含提交的用户名和密码字段的登录页面

checklogin.php:检查哪些凭据是正确的,哪些重定向到

login_successful.php:显示用户名

login.php以.开头

<?php session_start(); ?>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <?php
        include 'content.php';
        echo $head;
    ?>
</head>
Run Code Online (Sandbox Code Playgroud)

哪个应该初始化一个全局$ _SESSION变量吧?

checklogin.php有一些代码如下:

if (mysql_num_rows($result) < 1)
{
    /* Access denied */
    echo 'Sorry, your username or password was incorrect!';
}
else
{
    $_SESSION['username'] = $username;

    /* Log user in */
    header("location:login_successful.php");
}
Run Code Online (Sandbox Code Playgroud)

login_successful.php看起来像这样:

<div id="title" style="margin:5px">
    <h2>Welcome back <?php echo $_SESSION['username']; ?>!</p>
</div>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我通过登录程序并进入login_successful.php时,我收到此错误"注意:未定义的变量:第15行的C:\ wamp\www\login_successful.php中的_SESSION",即使我在登录时明确启动了一个会话.PHP.

它为什么这样做?

Ada*_*son 5

您需要session_start()每个脚本的顶部调用