Не мога да изляза от 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 Казах странно и не е лошо ;-)   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 Има ли нещо друго под echo ' в първия ви публикуван код? Може да е без значение, просто на базата на трябва да се знае   -  person Funk Forty Niner    schedule 21.06.2013
comment
под echo има кода на страницата (члена) всичко в html   -  person user2507171    schedule 21.06.2013
comment
@user2507171 Добре, значи това не е част от проблема. Добре... обратно към старата чертожна дъска.   -  person Funk Forty Niner    schedule 21.06.2013
comment
@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
@Fred Не знам, какво да правя?   -  person user2507171    schedule 21.06.2013
comment
Намерих това: $_SESSION = array(); след обаждане на session_destroy();   -  person Funk Forty Niner    schedule 21.06.2013
comment
@user2507171 Информацията по-горе беше намерена на php.net/manual/en/function. session-destroy.php и stackoverflow.com/a/9971669/1415724 - може да има малко информация там можеш да използваш.   -  person Funk Forty Niner    schedule 21.06.2013
comment
@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, да, ще можете да управлявате удостоверяването с бисквитки и сесии. - 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