Авторизация с пом. htaccess Вопрос

Focus

Новичок
Подскажите как получить доступ к логину пользователя который прошел авторизацию (логины и хеши паролей у меня лежат в файле .htpasswd)
 

Focus

Новичок
а можно еще какие-то данные хранить в .htpasswd, например дата добавления пользователя, его адрес и т.п.
 

Focus

Новичок
Подскажите как реализовать выход при такой авторизации. Что-то у меня никак не получается разлогиниться. Вот как я делаю:

ВХОД В СИСТЕМУ:
PHP:
session_start();
// Вход в систему:
if($_SERVER['PHP_AUTH_USER']!='')
	{
		$_SESSION['uslogin']=$_SERVER['PHP_AUTH_USER'];
	}
// выход
if($do=='logout')
{
session_unregister("uslogin");
$_SESSION = array(); 
unset ($_SERVER['PHP_AUTH_USER']);
session_destroy();  
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized'); 
}
//В конце срипта
$smarty->assign("login", $_SESSION['uslogin']);
После того как жму выйти из системы, появляется форма для ввода логина пароля "My Realm", когда я на ней жму отмена - перенаправляет на главную сайта. Хожу по страницам сайта, которые не защищены - сессии нет, когда кликаю по защищенной странице, то на нее спокойно заходит без аторизации. Выводил массив $_SERVER - там показывает $_SERVER['PHP_AUTH_USER'], получается что она не "убилась"..? Как ее удалить правильно эту переменную?
П.С. ЗА вывод страниц сайта отвечает всего один скрипт, и код который я привел выше обрабатывается для 100% страниц сайта
 

Фанат

oncle terrible
Команда форума
если ты все равно используешь сессию, то зачем тебе Basic Auth?

аааа, дошло! потому что ты хочешь использовать .htpasswd, как базу данных пользователей :)
нет, какая, всё-таки, прелесть - эти юноши бледные со взором горящим :)
 

Focus

Новичок
Я просто использую сторонний скрипт, который основан на Basic Auth. Сессию ввел для удобства. Сути это не меняет - не получается удалить $_SERVER['PHP_AUTH_USER']
По существу, можете помочь?
 

SiZE

Новичок
его как бы нельзя просто так удалить. там какие-то танцы с бубном. я помню помучался с этой кнопкой exit ))
 

С.

Продвинутый новичок
$_SERVER['PHP_AUTH_USER'] удалить нельзя, поскольку оно хранится в браузере и неуправляемо с сервера. То есть разлогирования в таком протоколе невозможно.

Но поскольку есть сессия, то можно сделать имитацию разлогирования. То есть игнорировать $_SERVER['PHP_AUTH_USER'].
 

Фанат

oncle terrible
Команда форума
Я просто использую сторонний скрипт, который основан на Basic Auth. Сессию ввел для удобства.
Ну так выкинь этот скрипт и оставь только сессию.
По существу, можете помочь?
По существу выучи хотя бы основы протокола НТТР, чтобы понимать, откуда что берется, и как может быть реализовано.
 

Focus

Новичок
Хорошо, как тогда можно реализваоть следующую задачу без использования такой авторизации:

Есть сайт с фильмами. Фильмы лежат по адресу site.com/films/
Сайт платный. Как защитить контент сайта от воровства?
Имею в виду что, платный пользователь может выбрость в интернет ссылки на фильмы и уже не будет смысла регистрироваться на сайте.
С пом. http авторизации контент можно защитить
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Твой пользователь может их выкачать и выложить. Вот и все.
 

С.

Продвинутый новичок
Я сам люблю использовать WWW-Authenticate: Basic, но лишь как интерфейсный элемент вместо самописной формы, механизм при этом держится на сессии. Если ты используешь .htpasswd, то у тебя свободы действий даже в этом не остается, там уже все сцеплено. Поэтому разлогирование только через закрытие всех окон бразуера или полная смена метода авторизации.

И да, phpMyAdmin не использует .htpasswd
 

bobo

Новичок
Хорошо, как тогда можно реализваоть следующую задачу без использования такой авторизации:

Есть сайт с фильмами. Фильмы лежат по адресу site.com/films/
Сайт платный. Как защитить контент сайта от воровства?
Имею в виду что, платный пользователь может выбрость в интернет ссылки на фильмы и уже не будет смысла регистрироваться на сайте.
С пом. http авторизации контент можно защитить
Так сделай разделы, которые должны быть доступны только зарегистрированным пользователям, закрытыми, что б без регистрации в них нельзя было войти, в чем проблема то ?
 

Focus

Новичок
Так сделай разделы, которые должны быть доступны только зарегистрированным пользователям, закрытыми, что б без регистрации в них нельзя было войти, в чем проблема то ?
Так они закрытые. Просто пользователь может выложить в свободный доступ ссылки на файлы с моего сайта:
site.com/films/video1.flv
site.com/films/video2.flv
site.com/films/video3.flv
..........
 

Focus

Новичок
Я сам люблю использовать WWW-Authenticate: Basic, но лишь как интерфейсный элемент вместо самописной формы, механизм при этом держится на сессии. Если ты используешь .htpasswd, то у тебя свободы действий даже в этом не остается, там уже все сцеплено. Поэтому разлогирование только через закрытие всех окон бразуера или полная смена метода авторизации.
Странно, но в мозилле почему-то даже закрытие браузера не помогает разлогиниться
 

Фанат

oncle terrible
Команда форума
закрыть браузер означает "закрыть все вкладки".
а не закрыть а потом восстановить сессию, как было
 
Сверху