Проблема с сессией PHP - PullRequest
       19

Проблема с сессией PHP

1 голос
/ 17 февраля 2011

Привет, я учу PHP.Используя xampp, я тестирую коды, а register_globals включен.Просто написал простой код для тестирования, но он не работает, я не знаю почему!Администратор с пропуском 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 ]

3 голосов
/ 17 февраля 2011

используйте это

<?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, который не инициализирован, поэтому он будет установлен в ноль.

3 голосов
/ 17 февраля 2011

Установите ваше сообщение об ошибке:

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

Вы получаете аналогичную ошибку, поскольку ваша переменная mySession не определена.

Примечание: неопределенная переменная: hey в /test.phpстрока 8

О, и пока вы используете PHP, избавьтесь от JavaScript и продолжайте:

header('Location: login.php');

Это будет иметь тот же результат, даже если кто-то включил JavaScriptвыкл.

3 голосов
/ 17 февраля 2011

Убедитесь, что $mySession определено и не равно нулю.isset вернет false, если переменная установлена ​​на null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...