PHP未在SESSION_start()上创建$_SESSION变量;

PHP未在SESSION_start()上创建$_SESSION变量;,php,apache,session,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.

我在这里的设置中有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>

哪个应该初始化全局$\u会话变量,对吗

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");
}
<div id="title" style="margin:5px">
    <h2>Welcome back <?php echo $_SESSION['username']; ?>!</p>
</div>
if(mysql\u num\u行($result)<1)
{
/*拒绝访问*/
echo'对不起,您的用户名或密码不正确!';
}
其他的
{
$\会话['username']=$username;
/*登录用户*/
标题(“位置:login_successful.php”);
}
login_successful.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");
}
<div id="title" style="margin:5px">
    <h2>Welcome back <?php echo $_SESSION['username']; ?>!</p>
</div>

欢迎回来

不幸的是,当我完成登录过程并登录到login_successful.php时,我得到了这个错误“注意:未定义的变量:\第15行C:\wamp\www\login_successful.php中的会话”,尽管我显然在login.php中启动了一个会话


为什么要这样做?

您需要在每个脚本的顶部调用
session_start()
您需要记住checklogin.php中的session_start();每一个剧本?谢谢!我假设它应该被全局调用一次,因为http是无状态的,每个web请求都会有效地启动php,运行,然后关闭,所以每次都需要调用它。如果此答案解决了问题,请使用左侧的大勾号将其标记为已接受。谢谢