Не могу выйти из mysql и php

Я создал систему входа/выхода в своем приложении, но она не работает даже при использовании session_start();, session_destroy(); и session_unset (); и т. д.

Вот что я сделал до сих пор:

первая страница (логин)

<?php
    if(
    !isset($_SERVER['PHP_AUTH_USER'])||
    !isset($_SERVER['PHP_AUTH_PW'])||
    ($_SERVER['PHP_AUTH_USER'])!="admin"||
    ($_SERVER['PHP_AUTH_PW']!="admin")
     )
{
header('WWW-Authenticate: Basic realm="Accès refusé"');
echo 'Accès refusé';
exit;
}
else
session_start (); 
$_SESSION['PHP_AUTH_USER'] = "admin"; 
$_SESSION['PHP_AUTH_PW'] = "admin"; 
echo '

и это часть выхода

<?php

session_start();
session_unset ();
session_destroy(); 
header("Location: index.php");
die;    
?>

Проблема в том, что сеанс не уничтожается даже при нажатии кнопки выхода.


person user2507171    schedule 20.06.2013    source источник
comment
Это должно быть if{, а не if(, за которым следует }, а не ) и т. д. Кроме того, вам нужно session_start(); на каждой странице.   -  person Funk Forty Niner    schedule 21.06.2013
comment
У меня есть session_start() на каждой странице + это if(условие) {} так я работаю все время   -  person user2507171    schedule 21.06.2013
comment
Ваш стиль сбивает с толку, даже если он вам подходит.   -  person Funk Forty Niner    schedule 21.06.2013
comment
Да, я видел, однако, что session_start(); обычно находится в верху страницы, а не внизу в else. Наверное, поэтому он разрушается.   -  person Funk Forty Niner    schedule 21.06.2013
comment
это после (иначе), потому что в моем случае или, если быть точнее, условие, с которого я начинаю, это если нет логина или пароля или если они неверны в этом случае ничего не должно произойти, но в другом случае сеанс должен начаться и отображается страница участника (после эха)   -  person user2507171    schedule 21.06.2013
comment
@Fred - его if содержит функциональный синтаксис, просто выглядит странно, как он отображается здесь.   -  person Kai Qing    schedule 21.06.2013
comment
@KaiQing действительно странно. Ну, я думаю, это как быть фармацевтом и читать почерк нового врача ;-)   -  person Funk Forty Niner    schedule 21.06.2013
comment
Это стандартный логин PHP, совсем не странный!!   -  person user2507171    schedule 21.06.2013
comment
@user2507171 user2507171 Я сказал странно и неплохо ;-)   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 user2507171 Есть ли что-нибудь еще ниже echo ' в вашем первом тексте опубликованного кода? Может быть неактуальным, просто для справки   -  person Funk Forty Niner    schedule 21.06.2013
comment
внизу эхо код страницы (члена) все в html   -  person user2507171    schedule 21.06.2013
comment
@ user2507171 Хорошо, тогда проблема не в этом. Хорошо... вернемся к "чертежной доске".   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 user2507171 Пробовали ли вы exit; вместо die; или вообще удалить его?   -  person Funk Forty Niner    schedule 21.06.2013
comment
Да делал, ничего не изменилось   -  person user2507171    schedule 21.06.2013
comment
Я предполагаю, что мне нужно отключить переменные PHP_AUTH_USER, но как я не знаю, я пробовал это PHP_AUTH_USER=null; PHP_AUTH_USER=; но все та же проблема   -  person user2507171    schedule 21.06.2013
comment
озадачен. Может быть, это как-то связано с твоими .htaccess и/или php.ini?   -  person Funk Forty Niner    schedule 21.06.2013
comment
Взято из руководства по PHP: если вы хотите изменить идентификатор сеанса при каждом входе в систему, обязательно используйте session_regenerate_id(true) во время процесса входа в систему. Не уверен, что это будет полезно.   -  person Funk Forty Niner    schedule 21.06.2013
comment
@ Фред, я не знаю, что мне делать?   -  person user2507171    schedule 21.06.2013
comment
Нашел это: $_SESSION = array(); после звонка session_destroy();   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 user2507171 Информация выше была найдена по адресу php.net/manual/en/function. session-destroy.php и stackoverflow.com/a/9971669/1415724 - там может быть некоторая информация ты можешь использовать.   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 user2507171 Кстати, вы сказали, что пытались поместить session_start(); также в верхнюю часть страницы входа, оставив другой нетронутым, и это не сработало?   -  person Funk Forty Niner    schedule 21.06.2013
comment
Да, я пробовал это, и я держал его наверху   -  person user2507171    schedule 21.06.2013


Ответы (1)


Создайте другую систему входа/выхода, это не сложно.

person sectus    schedule 21.06.2013
comment
Изменится ли что-нибудь, если я воспользуюсь другим браузером? - person user2507171; 21.06.2013
comment
@ user2507171, да, вы сможете обрабатывать аутентификацию с помощью файлов cookie и сеансов. - person sectus; 21.06.2013
comment
Возможно, это изменится, если вы используете другой браузер, но это все равно не решит существующую проблему. Что, если кто-то использует то же, что и вы сейчас? - person Funk Forty Niner; 21.06.2013
comment
@ user2507171 Посмотрите stackoverflow.com/a/12866277/1415724 и stackoverflow.com/a/3490680/1415724 - person Funk Forty Niner; 21.06.2013
comment
Я этого даже не заметил. - person AbsoluteƵERØ; 21.06.2013