Я не могу отобразить имя пользователя сеанса, правильно ли я храню имя пользователя и идентификатор сеанса? - PullRequest
0 голосов
/ 12 марта 2012

Я настраиваю форму входа.

Ожидаемый результат:

Имя пользователя сеанса эха на странице после успешного входа.

Фактический результат:

Вход выполнен успешно. Имя пользователя сеанса не отражается. Похоже, что имя пользователя сеанса либо не существует, либо не сохраняется на следующей странице.

Что-то не так с кодом ниже?

login.php

...
session_start();    
    if (mysql_num_rows($result) ==1)
    {
    session_regenerate_id();
    $row = mysql_fetch_assoc($result);
    $profileid = $row['userid'];
    $profile = $row['username'];
    //Set session
    $_SESSION['profileid'] = $profileid;
    //Put name in session
    $_SESSION['profile'] = $profile;
    //Close session writing
    session_write_close();

    //Redirect to user's page
    header("location: index.php?msg=userpage");
    exit();
    }
...

index.php

...
    <?php
    session_start();    
    if($_GET['msg']=="userpage")
    {
    echo $_SESSION['profile'];

    } 
...

Отредактировано: Поместите session_start в теги php. HTML изменен на INDEX.PHP.
«Если» скобка закрыта.
Изменено время на if в LOGIN.PHP. Изменено имя пользователя на страницу пользователя

Ответы [ 3 ]

0 голосов
/ 12 марта 2012

прежде всего ваш HTML еще PHP , поскольку он включает только теги PHP.

Замените while на if, потому что вы хотите установить переменные $ _SESSION только один раз.

И, наконец, то, что вы ищете, это

<?php
session_start();   //at the beginning of your script
if($_GET['msg']=="username")
{
 echo $_SESSION['profile'];
}
?>

Убедитесь, что вы удалили все пробелы перед открытием вашего первого тега <?php в вашем скрипте, поскольку это дает потенциальные ошибки заголовка.

0 голосов
/ 12 марта 2012

закрыть цикл if в html-файле

РЕДАКТИРОВАНИЕ:

Я сделал этот простой код на своей странице, и в соответствии с концепцией сеанса код работает нормально ... внесите соответствующие исправления

p1.php

<?php
    session_start();    

        //Put name in session
    $_SESSION['profile'] = "Pranav";
    //Close session writing


    //Redirect to user's page
    header("location: p2.php?msg=userpage");
    exit();

?>

p2.php

<?php 
session_start();    
    if($_GET['msg']=="userpage")
    {
    echo $_SESSION['profile'];

    }

?>

ДЛЯ НОВОГО ID СЕССИИ ИСПОЛЬЗУЙТЕ ЭТО

$a = session_id();
0 голосов
/ 12 марта 2012

Вам не нужно открывать / закрывать сессии, это не стоит дополнительных строк кода.Я также не знаю, почему вы регенерируете идентификатор сессии.

Но, одна вещь, ваш HTML-файл плохо сконструирован, и похоже, что session_start () не находится внутри каких-либо тегов PHP,так что это даже не рассматривается как код.

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