Не выводятся данные с сессии

224
21 сентября 2018, 04:40
<?PHP 
header("Content-Type: text/html; charset=utf-8");
//error_reporting( E_ERROR );
//require 'db.php';
require 'connection.php';
$data = $_POST;
if (isset($data['do_login']))
{
    $name = $data['name']; //берём имя игрока
    $password = $data['password']; //берём то что пользователь ввёл при авторизации
    $query = "SELECT password FROM accounts WHERE name = '".$name."'"; // запрос в бд
    $user = "SELECT id, name, mail, sex, model, last_ip, password, cash, bank, FROM accounts WHERE name = '".$name."'";
    $bd = mysqli_connect("localhost", "admin", "max777", "database");
    $cache1 = mysqli_query($bd, $user); // Данные для UCP
    $result1 = mysqli_fetch_row($cache1); // Данные для UCP
    $cache = mysqli_query($bd, $query);
    $users[] = $result1[0]; // ID
    $users[] = $result1[1]; // Name
    $users[] = $result1[2]; // Mail
    $users[] = $result1[3]; // Sex
    $users[] = $result1[4]; // Model
    $users[] = $result1[5]; // last_ip
    $users[] = $result1[6]; // password
    $users[] = $result1[7]; // cash
    $users[] = $result1[8]; // bank
    if (mysqli_num_rows($cache)) {
        $result = mysqli_fetch_row($cache);
        $expected_password = $result[0]; // берём пароль из бд
        $hash = hash('md5', $password); // Хэшируем введёный пароль при помощи md5
        if($hash === $expected_password)
        { // если хеш введённого пароля совпадает с хешом из бд значит пароль введён правильно
            $_SESSION['logged_user'] = $users;
            header("Location: panel.php");
        }else
        { // в инном случае введённый пароль не правильный
           ?><script type="text/javascript">alert("Введён неверный логин или пароль!")</script> <?PHP   ;
        }
    } else {
        ?><script type="text/javascript">alert("Введён неверный логин или пароль!")</script> <?PHP  ;
    }
}
?>

<?php print_r($_SESSION['logged_user'][1]); ?> Вот так вот я в ЛК вывожу Имя персонажа, но почему то не выводиться

Answer 1

Перед тем как записывать данные в сессию или брать их оттуда, сессию надо открывать с помощью функции session_start(). Так же можете попробовать передать идентификатор сессии руками Если проблема не устраниться можете поискать решение проблемы здесь: http://php.net/manual/ru/function.session-start.php http://phpfaq.ru/sessions#bugs

Запись:

if($hash === $expected_password)
        { // если хеш введённого пароля совпадает с хешом из бд значит пароль введён правильно
            session_start();
            $_SESSION['logged_user'] = $users;
            header("Location: panel.php?".session_name()."=".session_id());
        }

Вывод:

<?php 
    session_start();
    print_r($_SESSION['logged_user'][1]); 
?>
READ ALSO
Как организовать поиск диалогов?

Как организовать поиск диалогов?

Есть система диалогов, которая закладывается по принципу ссылки set=1_2 "1" это id отправителя , "2" получателя, переходя по подобной ссылке выбрасываются...

204
Yii2 $model-&gt;save() не работает

Yii2 $model->save() не работает

Пытаюсь осваивать Yii2 на одном небольшом внутреннем проектеВозникла проблема, перестала сохраняться модель

162
ютуб и php, вставка ролика

ютуб и php, вставка ролика

Есть некий массив, который достается из базы

173