@Chesterfield25

Почему не выводит данные?

После авторизации перенаправляет на index.php
Если данная сессия существует то должно вывести логин, емаил и ссылку на выход. Ссылка на выход появляется а логин и емаил нет.

<?php session_start();?>

<!DOCTYPE html>
<html>
<head>
    <title>SignIn</title>
</head>
<body>
<? if(isset($_SESSION['check_user'])): ?>
    <h2 style="margin: 10px 0;"><?= $_SESSION['check_user']['login'] ?></h2>
    <a href="#"><?= $_SESSION['check_user']['email'] ?></a>
    <a href="logout">LogOut</a>
    <? else: ?>
    <form action="log" method="POST">
        <input type="text" name="login" id="login" placeholder="Past Your Login">
        <input type="password" name="password" id="password" placeholder="Past Your Password">
        <button type="submit">SignIn</button>
    </form>
    <? endif; ?>
</body>
</html>


Через <?= print_r($login); ?> получаю 1 а через <?= print_r('login'); ?> получаю login1

Вот обработка авторизации

<?php
session_start();

require "database.php";

$database = new Database();
$db = $database->getConnection();

//Получаем данные из полей
$login = $_POST['login'];
$password = $_POST['password'];

//Проверяем существует ли аккаунт или нет если нет то выдаем ошибку\
$check_reg = $db->query("SELECT * FROM `users` WHERE `login` = '$login'")->fetch(PDO::FETCH_ASSOC);
if(!empty($check_reg) < 0) {
    echo "Данный аккаунт не зарегестрирован!";
    exit();
}

//Сравниваем ХЭШ пароля в базе
$password = md5($password."9urnhg83nrh8g23");

//Берем данные из базы users
$check_user = $db->query("SELECT * FROM `users` WHERE `login` = '$login' AND `password` = 'password'")->fetch(PDO::FETCH_ASSOC);


//Создаем ссесию пользователя
$_SESSION['check_user'] = [
    "id" => $check_user['id'],
    "login" => $check_user['login'],
    "email" => $check_user['email'],
    "balance" => $check_user['balance']
];

//Редирект на главную страницу
header('Location: index');
exit();
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 2
php666
@php666
PHP-макака
выбрось учебник, по которому учишься
тут плохо абсолютно все
возьми книгу Котерова и начинай читать с начала, вдумчиво, долго
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
В index.php после session_start() сделайте var_dump($_SESSION);, узнайте - в сессии вообще что-то хранится?

P.S. А вот авторизацию надо переписывать, ну нельзя же так!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы