2013-05-14 3 views
0

Я пришел с тем, что не мог решить так долго. я создал скрипт в PHP, который сбрасывает одну единственную переменную сеанса, однако страница Статистика сеанса Вот мой код страницы:Страница не распознается СЕССИЯ

<?php 
session_start(); 

require_once("../header.php"); 
    if($_SESSION['user']) { 

    unset($_SESSION['user']); 
     echo "you succesfully logged out."; 
     header("Refresh:5; url=http://www.webmasteroutlet.com"); 


    } else {  
     echo "you are already NOT LOGGED IN right now."; 
    } 
require_once("../footer.php"); 
?> 

То есть весь код на этой странице. и он всегда печатает «вы уже НЕ ДОПУСКАЕТСЯ прямо сейчас». $_SESSION['user'] присваивается true на странице login.php, и у меня есть session_start(); в самом начале страницы сразу после открытия <?php. Переменная сеанса распознается во всех других файлах с расширением php, и это единственный единственный файл, на котором он не работает. Я также пробовал

<?php 
session_start(); 
echo $_SESSION['user']; 
?> 

и ничего не печатал. Он просто пропускает эту строку и ничего не делает. Что я делаю не так ? Большое спасибо за помощь. это код header.php

<?php 
session_start(); 
require("config.php"); // that only contains connection to the database and it is successful. 

if(isset($_SESSION['user'])==1){ 
        echo "<div id=\"topnav\" class=\"topnav\"><a href=\"#\" class=\"signup\"><span>".$_SESSION['username']."</span></a> <a href=\"http://www.webmasteroutlet.com/users/logout.php\" class=\"signup\"><span>LOGOUT</span></a></div>"; 
       } 
      else if ($_SESSION['admin']) { 
        echo "<div id=\"topnav\" class=\"topnav\">"."<a href=\"#\" class=\"signup\"><span>".$_SESSION['adminusername']."</span></a> "; 
        echo "<a href=\"http://www.webmasteroutlet.com/admin/adminlogout.php\" class=\"signup\"><span>LOGOUT</span></a></div>"; 
       } 
      else  if (!isset($_SESSION['user'])) { 
        require ($_SERVER['DOCUMENT_ROOT']."https://stackoverflow.com/users/login.php"); 
       } 


require("search.php"); 
?> 
+2

Похоже, что '$ _SESSION ['user']' не установлен. Попробуйте 'var_dump ($ _ SESSION ['user'])', чтобы узнать, что это за значение. –

+0

если сеанс не установлен, когда он добавит свой следующий код, не появится ли ошибка? –

+1

Попробуйте 'var_dump ($ _ SESSION)' – Barmar

ответ

0

Попробуйте это:

<?php 
session_start(); 

require_once("../header.php"); 
if(isset($_SESSION['user'])) { 

echo "User.".$_SESSION['user']." you are being logged out"; 
unset($_SESSION['user']); 

    header("Refresh:5; url=http://www.webmasteroutlet.com"); 


} else {  
    echo "You are not logged or var SESSION doesnt exist"; 
} 
require_once("../footer.php"); 
?> 

Если по-прежнему не работает, попробуйте удалить require_once строки (для отладки).

+0

, что и является моим кодом. – Justin

+0

justin, эта страница кода является выходом из системы права? вы перенаправляетесь на это от кого-то, кто нажал кнопку выхода на другой странице, да? –

+0

yes В заголовке header.php отображается либо вход в систему, либо выход из него в теге html, и он исходит оттуда. – Justin

0

я думаю, что вам нужно, если установлено, и убедитесь, что вы передаете данные сессий на эту страницу он выглядит как ваша отмена этой

+0

Я тоже пробовал это тоже.Я думаю, что что-то другое вызывает проблемы, и его значение равно NULL, когда я говорю echo var_dump ($ _ SESSION ['user']); что это люди, когда он говорит null? – Justin

+0

null, когда вы var_dump означает, что он не установлен или равен false –

0

Джастина, я думаю, вы не устанавливая $_SESSION['user']. Это было бы причиной, по которой вы получаете NULL, когда вы vardump.

Еще одна возможность, хотя я ограничен указанными вами сценариями, так это то, что вы позволили человеку зарегистрироваться через $_SESSION['admin'], а также $_SESSION['user']. Если это так, вам придется сменить сценарий на:

if(isset($_SESSION['user'])) { 
    unset($_SESSION['user']); 
    echo "user succesfully logged out."; 
}elseif(isset($_SESSION['admin'])){ 
    unset($_SESSION['admin']); 
    echo "admin succesfully logged out."; 
}else{  
    echo "you are already NOT LOGGED IN right now."; 
} 
+0

. Посмотрите на код header.php, он имеет оператор if, и если условие работает с одной и той же переменной, и когда я вхожу в систему, он отображает LOGOUT, а когда нет вошедший в систему, он отлично отображает LOGIN, поэтому я уверен, что для параметра $ _SESSION ['user'] установлено значение true. – Justin

+0

трудно помочь, не видя всех файлов и тестирования, но, случайно, у вас есть это, чтобы администратор вошел в систему, а пользователь - нет. И в тот момент, когда вы пытаетесь это сделать, администратор не может выйти из системы, потому что вы обращаетесь только к отключению $ _SESSION ['user'] –

+0

На моем веб-сайте также есть панель администратора, но она отлично работает на странице adminlogout. вы смотрите на заголовок и видите, что он работает нормально. Что-то по пути вызывает у него значение NULL. что может это сделать? – Justin

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