PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Описание: Можно примерчик
ЯД
Отправлено: 03 Февраля, 2008 - 17:13:59
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Янв. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)

[+]


Уважаемые программисты, дайте мне пожалуйста ссылочку, на пример авторизации(с сессиями). Очень хочется разобраться в этом, а нормального рабочего примера найти не могу.
Заранее спасибо!
 
 Top
valenok Модератор
Отправлено: 03 Февраля, 2008 - 18:44:03
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP session_start(); header("Content-Type: text/html; charset=cp1251");
  2.  
  3. function show_form($message){
  4.         ?>
  5. <div class='login_div'>
  6. <span class='login_error'><?PHP echo $message ?> </span> <br/>
  7. <Form method="post"  name='form' id='form' action='login.php' class='login_form'>
  8. <B>Имя персонажа:</B>
  9. <input type='text' name='user' maxlength='20' class='login_user'/>
  10.  
  11.  
  12. <B>Пароль:</B>
  13. <input type='password' name='pass' maxlength='20' class='login_pass'/>
  14. <input  type='submit' value="Вход" name='subm'class='login_submit'/>
  15. </Form>
  16. </div>
  17. <?PHP
  18.         die();  }
  19.  
  20.  
  21. //Убеждаемся что пользователь жал на кнопку сабмит
  22. if(!isset($_POST['subm'])) show_form('');
  23.  
  24. // Убеждаемся что нам подсунули чтото а не кота в мешке
  25. if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass']))
  26.         show_form("Не правильная пара логин-пароль.");
  27.  
  28. // подключение к БД
  29. $connection = mysql_connect("localhost","","") ;
  30. mysql_select_db('database') ;
  31.  
  32. // Проверяем, вводил ли польхователь неверный пароль несколько раз
  33. $errors = @mysql_result(mysql_query("SELECT count(ip) as falses FROM unauth WHERE
  34. logintime>DATE_SUB(NOW(),INTERVAL 1 HOUR) AND ip='".$_SERVER['REMOTE_ADDR']."'"),0);
  35.  
  36.  // НЕ смог достучаться до БД
  37.  if (mysql_error()) die();
  38.  
  39. // Если пользователь уже трижды пытался ввести пароль и все три не верно (защита от перебора компьютером)
  40. if ($errors>2)  die("Доступ закрыт попробуйте снова через час");
  41.  
  42.  
  43.  
  44. $user = mysql_escape_string($_POST['user']);
  45. $pass = md5($_POST['pass']."ahha");
  46.  
  47. // Проверяем есть ли пользователь с таким логином и паролем
  48. $result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$user."' AND `pass`='".$pass."'");
  49.        
  50.         // если есть - впускаем
  51.         if(mysql_num_rows($result)==1) {
  52.                 $_SESSION['login']=$user;
  53.                 $_SESSION['id'] = mysql_result($result,0,0);
  54.         }
  55.         // Если нет - пишем так.
  56.         else{
  57.                 mysql_query("INSERT INTO `unauth` VALUES('".$user."','".$pass."','".$_SERVER['REMOTE_ADDR']."','')");
  58.                 show_form("Incorrect login-password.");
  59.                 }
  60.        
  61.   // Далее сообщение которое увидит вошедший пользователь
  62. ?>
  63.  
  64. < meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
  65. < meta http-equiv="refresh" content="0; url=index.php" >
  66.  
  67.  


-----
Truly yours, Sasha.
 
My status
 Top
valenok Модератор
Отправлено: 08 Февраля, 2008 - 11:58:10
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `unauth` (
  2.   `username` varchar(20) NOT NULL default '',
  3.   `pass` varchar(20) NOT NULL default '',
  4.   `ip` varchar(15) default NULL,
  5.   `logintime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
  6. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


-----
Truly yours, Sasha.
 
My status
 Top
androidfx
Отправлено: 04 Марта, 2008 - 14:10:52
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Нояб. 2007  
Откуда: Москва


Помог: -1 раз(а)




Заносит в базу все кроме logintime
 
 Top
valenok Модератор
Отправлено: 04 Марта, 2008 - 14:16:08
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Потому что вы не выставили этому полю значение по умолчанию.
Создайте таблицу при помощи следующего запроса:

CODE (text):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `unauth` (
  2.   `username` varchar(20) NOT NULL default '',
  3.   `pass` varchar(20) NOT NULL default '',
  4.   `ip` varchar(15) default NULL,
  5.   `logintime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
  6. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


-----
Truly yours, Sasha.
 
My status
 Top
inabomber
Отправлено: 30 Мая, 2008 - 02:42:30
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




не подскажет кто нибудь..
Какой скрипт добовлять в странички(которые хочешь скрыть от незарегистрированных пользователей),чтобы увидить это все в действии?
 
 Top
valenok Модератор
Отправлено: 30 Мая, 2008 - 11:09:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)






-----
Truly yours, Sasha.
 
My status
 Top
inabomber
Отправлено: 02 Июня, 2008 - 21:53:26
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




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

(Отредактировано автором: 02 Июня, 2008 - 21:57:59)

 
 Top
scuter
Отправлено: 03 Июня, 2008 - 01:57:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




inabomber пишет:
как можно сделать так что было выводить после авторизации,для каждого пользователя, только определеную информацию предназначенную для него.

$_SESSION
 
 Top
inabomber
Отправлено: 03 Июня, 2008 - 11:48:57
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




что есть
scuter пишет:
$_SESSION
я должен создать ссесию для него но как узнать ид сесии зарание если она задается рандомом. у меня есть даные которые предназначены для опредененной группы лиц. таких групп много шт 6-15 как сделать так чтобы после авторизации они видели инфу придназначеную только для них?
 
 Top
valenok Модератор
Отправлено: 03 Июня, 2008 - 12:12:53
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




http://phpfaq[dot]ru/sessions
http://phpfaq[dot]ru/na_tanke

Узнайте что такое сессия, как она работает, что такое id сессии
а потом ответьте на ваш вопрос.


-----
Truly yours, Sasha.
 
My status
 Top
franky
Отправлено: 19 Января, 2009 - 22:43:08
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2009  
Откуда: Донецк,Украина


Помог: 0 раз(а)

[+]


valenok пишет:
// Если пользователь уже трижды пытался ввести пароль и все три не верно (защита от перебора компьютером)
if ($errors>2) die("Доступ закрыт попробуйте снова через час");

А каким образом можна изменить время закрытия доступа? Допустим 10 минут.
 
 Top
valenok Модератор
Отправлено: 19 Января, 2009 - 22:55:38
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




$errors = @mysql_result(mysql_query("SELECT count(ip) as falses FROM unauth WHERE
logintime>DATE_SUB(NOW(),INTERVAL 10 MINUTE) AND ip='".$_SERVER['REMOTE_ADDR']."'"),0);


-----
Truly yours, Sasha.
 
My status
 Top
franky
Отправлено: 19 Января, 2009 - 23:07:34
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2009  
Откуда: Донецк,Украина


Помог: 0 раз(а)

[+]


Я так понял что блокировка идет через IP?А если IP динамический?
 
 Top
CodeWarrior
Отправлено: 19 Января, 2009 - 23:29:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




franky пишет:
Я так понял что блокировка идет через IP?А если IP динамический?

Для того чтобы динамический IP сменился, если я не ошибаюсь Радость , нужно переподключиться к Интернету. Так или нет?

(Отредактировано автором: 19 Января, 2009 - 23:30:37)

 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB