PHP Session问题

时间:2011-02-17 07:02:00

标签: php session xampp

您好 我正在学习PHP。 使用xampp我测试代码,register_globals为ON。 刚写了一个简单的代码来测试会话,但它不起作用我不知道为什么! 管理员使用通行证123正确登录但当我点击进入管理区域时,它会将我返回到登录页面,因为似乎没有设置会话:

这是check.php页面:

<?php
session_start();
    $u = $_POST['tfUser'];
    $p = $_POST['tfPass'];
    if (($u == "admin") && ($p == "123"))
    {
        print ("Okay! Go to Admin area "."<a href='admin.php'>Click Here</a>");
        $_SESSION["testSession"] = $mySession;  
    }
    else
    {
        print ("Nope !");
    }
?>

这是admin.php页面:

<?php
    session_start();
    if (isset($_SESSION["testSession"]))
    {
        echo "Hello !";
    }
    else
    {
        echo '<script language="javascript">
        window.location.href="login.php";
        </script>';
        return;
    }
?>

3 个答案:

答案 0 :(得分:3)

检查$mySession是否已定义且不为空。如果变量设置为isset

null将返回false

答案 1 :(得分:3)

使用此

<?php
session_start();
    $u = $_POST['tfUser'];
    $p = $_POST['tfPass'];
    if (($u == "admin") && ($p == "123"))
    {
        print ("Okay! Go to Admin area "."<a href='admin.php'>Click Here</a>");
        $_SESSION["testSession"] = $u;  // or something else (string, or any other var which must be having some values) 
    }
    else
    {
        print ("Nope !");
    }

您正在使用未初始化的$mysession,因此它将设置为null。

答案 2 :(得分:3)

设置错误报告:

error_reporting(E_ALL);
ini_set('display_errors', '1');

您收到类似的错误,因为未定义mySession var。

注意:未定义的变量:在第8行的/test.php中嘿

哦,只要你学习PHP,就摆脱JavaScript并继续:

header('Location: login.php');

即使有人关闭了JavaScript,它也会有相同的结果。