Показать сообщение отдельно
Старый 19.04.2002, 04:08
advocat вне форума Посмотреть профиль Отправить личное сообщение для advocat Посетить домашнюю страницу advocat Найти все сообщения от advocat
  № 6  
advocat
 
Аватар для advocat

Регистрация: Feb 2001
Адрес: Киев
Сообщений: 649
Отправить сообщение для advocat с помощью ICQ
Приведу более ли менее простой пример как делается авторизация с помощью сессий, дальше извращайся как хочешь, а я только приведу пример даже под тебя ... я сеня добрый .... скрипт писать полностью небуду, но приведу самые важные куски кода с разьяснениями ...
Начнем с того что у меня есть некий фаул, назовем его member.php, в нем реализована проверка пользователя и пароля ...
PHP код:
 // в начале файла начинаем сессию (используется 
//для продолжения сессии без ее передачи):
session_start();
// допустим передается в него $user & $passwd
// делаем проверку в базе , лучше всего создать функцию ...
$result = mysql_query("select * from user where user='$user'
 and passwd = password('
$passwd')");
// password('$passwd') - просто у используется спец шифрование ...
  
if (!$result)
    return 
0;
  if (
mysql_num_rows($result)>0)
    return 
1;
  else
    return 
0;
// Если пользователь прошел проверку регистрируем сессию
$valid_user = $user;
session_register("valid_user"); 
Вот у нас есть теперь зарегистрированая сессия valid_user, которая передает только имя юзера !

Далее в нужном тебе файле, где нужно сделать проверку, авторизировался ли пользователь, пишешь примерно следующее :
PHP код:
<?
// проверяем создана ли сессия
if (session_is_registered("valid_user")) {
// вот тебе уже провереный юзвер, теперь что хочешь, то с ним и делай ...
// теперь вернемся к вопросу о даных пользователя ...
// просто делаешь запрос к базе даных и вытаскиваешь нужные тебе даные
// напр:
$res = mysql_query("select * from user where user='[b]$valid_user[/b]'");
$row = mysql_fetch_array($res);
?>Пользователь: <?=$valid_user?> || <?=$row[user]?><br>
количество месаг : <?=$row[message]?><br>
все остальное и тд : <?=$row[other]?><?
// вот фактически и все...
} else {
// если сессия незарегистрирована выведи например:
  
echo "ACCESS DENIED";
}
?>
Вобщем здесь все очень просто ...
Напишу еще сразу примечание :
1. Во всех страницах сначала пропиши session_start(); , не отягощает код, но зато 100% увереность, что пользователь во время путишествия по твоему сайту будет сохранять сессию ...
2. с куками сам решай что делать, просто ты можешь предварительно заганять в куки юзера и пароль и потом проверять их и регить сессию, что-бы пользователь не авторизировался ешо раз
3. сделай кновку выход, тобишь скрипт, который из куков будет убивать даные, и убивать сессию ...
PHP код:
$old_user = $valid_user;  // сохраняем на случай ести пользователь не вошел
$result_unreg = session_unregister("valid_user");
$result_dest = session_destroy(); 
$old_user сделано, на случай неудачного выхода...
Вроде все, будут вопросы, задавай ...
__________________
заходите в гости
advocat, это не по професия - это диагноз!
Обычно в PHP обитаю ...


Последний раз редактировалось advocat; 19.04.2002 в 04:11.