2014-11-15 2 views
1

Я создал экран входа в систему, который проверяет правильность пароля.PHP после перенаправления переменной сеанса изменяется на false

После отправки формы входа в систему я получаю process.php, что есть такие строки:

if (password_verify($passwordPost, $passwordDB)) { 
     $_SESSION['loged_in'] = true; 
    } else { 
     $_SESSION['loged_in'] = false; 
    } 
    # when I do a print_r on $_SESSION['loged_in'] it results true 
    header('Location: ../../admin/index.php'); 

индекс страницы, которая проверяет сессию (../../admin/index.php)

<?php 
    session_start(); 
    # when I do a print_r on $_SESSION['loged_in'] here, it results false 
    if ($_SESSION['loged_in'] == false) { 
     include(PATH_COMPONENTS.'login/index.php'); 
    } 
    ?> 

Как это возможно?

+2

ли вы начать свой 'session_start();' 'в process.php'? – Rizier123

+1

Добавьте сообщение об ошибках в начало вашего файла (ов) сразу после открытия '

+0

Нет, я называю это в index.php, этого недостаточно? или мне нужно вызвать session_start каждый раз, когда мне это нужно? –

ответ

1

Вы должны начать сеанс в каждом файле! Например:

session_start(); //most times at the top of every file 

ДА, вы должны начать сеанс в каждом файле, используя его!

Кроме того, для использования отчетов об ошибках это:

<?php 
    error_reporting(E_ALL); 
    ini_set("display_errors", 1); 
?> 
Смежные вопросы