Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Хитрости и секреты создания сайтов


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Интернет / Хитрости и секреты создания сайтов

Выпуск № 186
от 07.01.2008, 01:05

Администратор:Ерёмин А.А.
В рассылке:Подписчиков: 463, Экспертов: 38
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 116585: Здравствуйте, эксперты! Надо на сайт поставить авторизацию, но так, чтобы авторизованный мог везде бродить, а гость - только там, где можно. Как это сделать средствами PHP или Html?...

Вопрос № 116.585
Здравствуйте, эксперты! Надо на сайт поставить авторизацию, но так, чтобы авторизованный мог везде бродить, а гость - только там, где можно. Как это сделать средствами PHP или Html?
Отправлен: 02.01.2008, 00:53
Вопрос задал: Даниил Цветков (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Web-Extrime
Здравствуйте, Даниил Цветков!

Для авторизации на сайте могу предложить вам PHP скрипт "Access User Class". Это удобная система для защиты ваших веб-страниц и регистрации пользователей.

Основные возможности скрипта:
* регистрация и вход пользователей,
* восстановление пароля,
* активация учетной записи по электронной почте.


Загрузить скрипт (86 Кб.) вы можете по ссылке ниже.

Успехов и с праздниками!

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Делай добро сам, и всегда помни что сделали для тебя!

Ответ отправил: Web-Extrime (статус: Практикант)
Ответ отправлен: 02.01.2008, 10:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо, теперь будем осваивать!

Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Даниил Цветков!
Вас также с Новым годом!!!

Тут есть множество вариантов реализации. Во-первых нужно определиться, где будут храниться переменные с логином и паролем авторизированных пользователей. Тут 3 варианта:
1) В COOKIE .Вариант неплохой, можно потом автоматически заносить в поля ввода логин и пароль этого человека, но что делать если COOKIE отключены?
2) В сессии. Лично я часто использую этот вариант, однако он не самый надежный, ведь сессии могут украсть.
3) В серверный переменных $_SERVER['PHP_AUTH_USER'] для логина и $_SERVER['PHP_AUTH_PW'] для пароля. Вызываются они через заголовки:'WWW-Authenticate: Basic realm="Запрещенная зона"', 'HTTP/1.0 401 Unauthorized'. Минус в том, что при посылке заголовков появляется окно броузера для ввода логина и пароля, но если это не портит дизайн сайта, советую этот метод.

Теперь, определившись с методом хранения данных, мы создадим форму для авторизации.
1) Для варианта 1 и 2.
<form action="auth.php" method="post">
Логин:<input type="text" name="login"><br>
Пароль:<input type="text" name="pass"><br>
<input type="submit" value="ok">
</form>

2) Для варианта 3. Предлагаю создать функцию user_check() для сверки логина и пароля сервера с необходимыми данными. Эту функцию я привел как пример, для ее применения, ее нужно переделать в соответствии с требованиями по безопастности. Примерно так. Соединения с БД должно уже быть установлено.

function user_check()
{
$log=$_SERVER['PHP_AUTH_USER'];
$pass=$_SERVER['PHP_AUTH_PW'];
$res=mysql_query("SELECT * FROM users where login='$log' and pass='$pass' ");
if(!$res)return false; else return true;
}

if(!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !user_check())
{
header('WWW-Authenticate: Basic realm="Запрещенная зона"');
header('HTTP/1.0 401 Unauthorized');
echo "Ошибка ";
exit;
}
Ну и наконец нужно добавить проверку данных на каждой страницы, чтобы ее видели только зарегестрированные пользователи. В варианте 3 эта проверка уже сделана, а для остальных ниже:
<?
include("func.php");
if(!user_check($_SESSION['login'],$_SESSION['pass']))
{
exit;
}

Файл func.php описан в приложении.

Ну вот примерно так реализуется авторизация различными способами.
?>

Приложение:

---------
Жить хорошо, а хорошо жить еще лучше!

Ответ отправил: Емельянов Данил Юрьевич (статус: 5-ый класс)
Ответ отправлен: 02.01.2008, 10:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.68 от 04.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное