Как разлогиниться от директории защищенной средствами Apache

SF
На сайте с 11.10.2005
Offline
137
2854

Здравствуйте. Такая ситуация: скрипт лежит в директории, защищенной средствами Apache с помощью .htaccess и .htpasswd. Созрел такой вопрос: а как в скрипте реализовать кнопку "выйти"? Т.е. чтобы уничтожались переменные

$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];

Нашел в интернете, один мастер предлагал такой скрипт

if($_GET['logout']==1)

{
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);

Header( "WWW-authenticate: basic realm=\"My Authentication System\"");
Header( "HTTP/1.0 401 Unauthorized");
print "logged out";
exit;
}

Но этот скрипт скорей имитирует выход из защищенной директории, потому что после такого выхода, набираю в браузере адрес защищенной директории и вхожу в директорию без ввода пароля.

Кто сталкивался с такой задачей, поделитесь. Или ссылкой где описывается решение.

Это решение как то реализовано в CPanel, но у меня нет исходников CPanel и я не знаю как там работает разлогинивание.

Инструкция: Как Правильно Делать Сайты: Домен, Хостинг, Установка CMS (http://www.3sd.ru/kak-delat-site/index.php).
R
На сайте с 08.04.2004
Offline
58
#1

закрыть браузер

Shtogrin
На сайте с 02.11.2006
Offline
95
#2
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
SF
На сайте с 11.10.2005
Offline
137
#3

Shtogrin, огромное спасибо, то что надо, пойду сейчас тестировать.

resident, согласен с вами, я тоже своему руководству тоже самое говорю. :)

Но, они уперлись, надо кнопку "выход" и все ... :)

F
На сайте с 10.02.2008
Offline
3
#4

А если попробовать изменить логин или пароль на другой при выходе? (на случайно сгенерированный)

Регистрация доменных имен (http://www.hosterok.net/domains/) http://www.hosterok.net (http://www.hosterok.net) - Надежный и недорогой хостинг!
SF
На сайте с 11.10.2005
Offline
137
#5

Может кому пригодиться решениие.

Оказывается работает все очень просто, узер и его пароль убиваются с помощью java-script

Создаете файл под именем logout.html например, как только пользователь зашел на этот файл, логин к директории защищенной с помощью Apache убивается, если вы попытаетесь опять вернуться а защищенную директорию, апач запросит у вас пароль заново (единственный минус, этот скрипт не работает в Опере).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Выход из программы</title>
<script language="javascript" type="text/javascript">

try{
var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("msie") != -1) {
// IE clear HTTP Authentication
document.execCommand("ClearAuthenticationCache");
}
else {
var xmlhttp = createXMLObject();
xmlhttp.open("GET",".force_logout_offer_login_mozilla",true,"logout","");
xmlhttp.send("");
xmlhttp.abort();
}
// window.location = "/rest/";
} catch(e) {
// There was an error
alert("there was an error");
}

function createXMLObject() {
try {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
} catch (e) {
xmlhttp=false
}
return xmlhttp;
}
</script>
</head>
<body><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle">
<p><font size="+1">Вы вышли из программы</font></p>
<p><font size="+1"><a href="/">Войти в программу</a></font></p>
<p>&nbsp;</p>*</td>
</tr>
</table>
</body>
</html>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий