2013-03-28 3 views
0

Я пытаюсь создать систему входа в систему на PHP. Ive получил всю базу данных, работающую, но пытаясь сохранить и загрузить сеанс, поэтому пользователь вошел в систему, когда они перемещаются по моему сайту, не работает. Я установил информацию о сеансе следующим образом:Невозможно загрузить информацию о сеансе PHP

session_start(); 
...database code 
if($count==1){ 
//log in info correct, save to session and redirect back. 
$_SESSION['username'] =$username; 
$_SESSION['loggedin'] = "true"; 

header("location:../index.php"); 
} 

Затем, на странице индекса.

<?php 
    session_start(); 
    if(!isset($_SESSION['loggedin'])){ 
    echo "You must be logged in!";  
    }else{ 
    echo "You are logged in"; 
    } 
?> 

Этот код все происходит в верхней части страницы, перед любым html. Даже после входа в систему, он говорит: «Вы должны войти в систему» ​​ Любая помощь будет большой :) Спасибо

+0

Попробуйте var_dump ($ _ SESSION), чтобы просмотреть содержимое? Вы не должны использовать $ _SESSION ['loggedin'] = "true", но $ _SESSION ['loggedin'] = TRUE –

+0

Действительно ли '$ count' равен 1? – SeanWM

+0

var dump возвращает "array (0) {}" Да, он равен 1, потому что, если это не так, я перенаправляюсь на страницу с ошибкой входа. – JPatrickDev

ответ

0

Я пробовал это, кажется, нахожу работу. Просто объявить переменную перед, если ($ рассчитывать ... и изменить IsSet опорожнить.

 $_SESSION['loggedin'] = ""; 

     if($count == 1) 
     { 
      /*same thing */ 
     } 


     if(!empty($_SESSION['loggedin'])) 
     { 
      echo "You are logged in"; 
     }else 
     { 
      echo "You must be logged in!"; 
     } 

Также имо, я думаю, что это будет лучше поставить заголовок, где эхо.

-2

Является ли ваш куки отключены? Если это так, пожалуйста, включите и проверьте.

Ваш код выглядит просто отлично и SESSION должен работать, как ветер, если рассчитывать $ действительно равен 1.

Если это не так, проверьте ваш phpinfo, который должен выглядеть e это:

    session 
Session Support     enabled 
Registered save handlers   files user mm sqlite 
Registered serializer handlers php php_binary wddx 
+0

Нет, файлы cookie включены в моем браузере, так что не должно быть проблем – JPatrickDev

+0

isset ($ _ SESSION ['anything']) вернет true, потому что вы запустили сеанс. –

0

Если вы проверяете сеанс, используйте empty() и not isset(). isset() возвращает true, если массив создан, а не если ключ совпадает.

if(!empty($_SESSION['loggedin'])){ 
    //do the checks to verify the person 

} else { 
    //they aren't logged in 

} 
Смежные вопросы