Пишу скрипт авторизации к админке. И возникла проблема с logout'ом. Жму кнопку logout, и ничего не происходит, выйти не могу, куки не удаляются…
Опытным путём выяснил, когда жму кнопку logout, куки удаляются, перезагружаю страницу и они опять записываются…
Помогите пожалуйста выяснить и решить проблему. Убил уже вторые сутки, никак не могу решить.
index.php
<?php
error_reporting('E_ALL');
require_once 'lib/lib_auth.php';
if ( isset( $_REQUEST['logout'] ) ) {
auth_logout();
}
auth_check();
echo 'lalalla';
echo '<br /><br /><a href="?logout">logout</a>';
?>
auth_inc.php
<?php
require_once './config.php';
function auth_logout() {
setcookie( 'login', '', time() - 3600, '/' );
setcookie( 'password', '', time() - 3600, '/' );
}
function auth_login() {
global $auth;
if ( !isset( $_SERVER['PHP_AUTH_USER'] ) ) {
Header('WWW-Authenticate: Basic realm="Access denied."');
Header('HTTP/1.0 401 Unauthorized');
exit();
} else {
if ( !get_magic_quotes_gpc() ) {
$login = mysql_escape_string( $_SERVER['PHP_AUTH_USER'] );
$password = mysql_escape_string( $_SERVER['PHP_AUTH_PW'] );
} else {
$login = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
}
if ( $login != $auth['login'] || $password != $auth['password'] ) {
Header('WWW-Authenticate: Basic realm="Access denied."');
Header('HTTP/1.0 401 Unauthorized');
exit();
} else {
setcookie( 'login', $login, time() + 3600*24*365, '/' );
setcookie( 'password', md5(md5($password)), time() + 3600*24*365, '/' );
}
}
}
function auth_check() {
global $auth;
if ( isset( $_COOKIE['login'] ) and isset( $_COOKIE['password'] ) ) {
if ( $auth['login'] != $_COOKIE['login'] || md5(md5($auth['password'])) != $_COOKIE['password'] ) {
setcookie( 'login', '', time() - 3600, '/' );
setcookie( 'password', '', time() - 3600, '/' );
auth_login();
}
} else {
auth_login();
}
}
?>
В config.php, создаю массив $auth, в котором указаны логин и пароль $auth['login'], $auth['password'].