PHP не создает переменную $ _SESSION для session_start (); - PullRequest
3 голосов
/ 18 августа 2011

У меня есть 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>

Что должно инициализировать глобальную переменную $ _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");
}

login_successful.php выглядит так:

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

К сожалению, когда я прохожу процедуру входа в систему и попадаю в login_successful.php, я получаю эту ошибку «Примечание: неопределенная переменная: _SESSION в C: \ wamp \ www \ login_successful.php в строке 15», хотя я явно запустил сессия в login.php.

Почему он это делает?

Ответы [ 2 ]

5 голосов
/ 18 августа 2011

Вам нужно вызвать session_start() в начале каждого ваших сценариев

1 голос
/ 18 августа 2011

Вам нужно запомнить session_start () в checklogin.php

...