Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизация

 PHP.SU

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


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

> Описание: ещё один скрипт авторизации
Mister
Отправлено: 06 Мая, 2008 - 11:33:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


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

[+]


Я в безопасности не очень разбираюсь, не мог ли бы Вы подсказать всё ли у меня в порядке со скриптом?
Код формы файл index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //Создание сессии
  3. //Регистрация переменных
  4. $_SESSION['auth'] = "l";
  5. ?>
  6. <table cellpadding="5" cellspacing="5" border="0" align="center" width="400" height="10%">
  7. <form action="check.php" method="post">
  8. <tr bgcolor="#E7E7E7">
  9.         <td><b>Введите логин</b></td>
  10.         <td><input type="text" name="name">td>
  11. </tr>
  12. <tr bgcolor="#E7E7E7">
  13.         <td><b>Введите пароль</b></td>
  14.         <td><input type="password" name="password"></td>
  15. </tr>
  16. <tr bgcolor="#E7E7E7">
  17.         <td><b>Повторите пароль</b></td>
  18.         <td><input type="password" name="password_again"></td>
  19. </tr>
  20. <tr>
  21.         <td>&nbsp;</td>
  22.         <td><input type="submit" name="go" value="&nbsp;&nbsp;&nbsp;Вход&nbsp;&nbsp;&nbsp;"></td>
  23. </tr>
  24. </form>
  25. </table>
  26.  

Этот файл уже непосредственно проверяет данные введённые в форму, файл check.php.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (!isset ($_SESSION['auth']))
  4.         {
  5.                 header ('Location: index.php');
  6.                 die ();
  7.         }
  8.         {      
  9. //Проверка полей
  10. $_POST['name'] = trim ($_POST['name']);
  11. $_POST['password'] = trim ($_POST['password']);
  12. $_POST['password_again'] = trim ($_POST['password_again']);
  13. if (empty($_POST['name']))
  14.         {
  15.                 echo "Поле <b>Имя</b> не заполнено, пожалуйста, проверьте правильность введённых данных";
  16.                 echo "<br><a href=# onClick = 'history.back()'>Вернуться назад</a>";
  17.                 exit();
  18.         }
  19. if (empty($_POST['password']))
  20.         {
  21.                 echo "Поле <b>Пароль</b> не заполнено";
  22.                 echo "<br><a href=# onClick = 'history.back()'>Вернуться назад</a>";
  23.                 exit();
  24.         }
  25. if (($_POST['password']) !== ($_POST['password_again']))
  26.         {
  27.                 echo "Введённые пароли не совпадают";
  28.                 echo "<br><a href=# onClick = 'history.back()'>Вернуться назад</a>";
  29.                 exit();
  30.         }
  31. $name = htmlspecialchars(stripslashes($_POST["name"]));
  32. $password = htmlspecialchars(stripslashes($_POST["password"]));
  33.         }
  34. //Далее будет следовать проверка правильности введённого пароля и логина
  35. ?>
  36.  


-----
..я не специалист, а только учусь
 
 Top
SergeantPEPPER
Отправлено: 06 Мая, 2008 - 12:43:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


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




Не совсем понял, что именно имелось в виду:

Я так понял, что идентификатор авторизованности пользователя у вас переменная $_SESSION['auth']
У вас пользователь должен авторизовываться в момент, когда он попадает на index.php или когда в файле check.php совпадут логин и пароль с правильными?

Если вы ожидаете увидеть первое - то все ок, если второе - то это конечно не правильно
 
 Top
Mister
Отправлено: 06 Мая, 2008 - 13:00:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


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

[+]


Файл index.php содержит форму ввода логина и пароля. В файле check.php происходит проверка правильности введённых логина и пароля. А также в нём происходит проверка и сравнение с правильными логином и паролем. Главный вопрос в том, чтобы предъотвратить обращение пользователя к файлу check.php напрямую, минуя файл с формой.


-----
..я не специалист, а только учусь
 
 Top
SergeantPEPPER
Отправлено: 06 Мая, 2008 - 13:04:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


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




Если Главный вопрос ставится именно так, то тогда у вас все в порядке)
 
 Top
Mister
Отправлено: 06 Мая, 2008 - 13:37:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


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

[+]


Спасибо!


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB