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
Форумы портала PHP.SU :: Версия для печати :: Авторизация
Форумы портала PHP.SU » PHP » Программирование на PHP » Авторизация

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

1. Mister - 06 Мая, 2008 - 11:33:53 - перейти к сообщению
Я в безопасности не очень разбираюсь, не мог ли бы Вы подсказать всё ли у меня в порядке со скриптом?
Код формы файл 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.  
2. SergeantPEPPER - 06 Мая, 2008 - 12:43:36 - перейти к сообщению
Не совсем понял, что именно имелось в виду:

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

Если вы ожидаете увидеть первое - то все ок, если второе - то это конечно не правильно
3. Mister - 06 Мая, 2008 - 13:00:03 - перейти к сообщению
Файл index.php содержит форму ввода логина и пароля. В файле check.php происходит проверка правильности введённых логина и пароля. А также в нём происходит проверка и сравнение с правильными логином и паролем. Главный вопрос в том, чтобы предъотвратить обращение пользователя к файлу check.php напрямую, минуя файл с формой.
4. SergeantPEPPER - 06 Мая, 2008 - 13:04:12 - перейти к сообщению
Если Главный вопрос ставится именно так, то тогда у вас все в порядке)
5. Mister - 06 Мая, 2008 - 13:37:27 - перейти к сообщению
Спасибо!

 

Powered by ExBB FM 1.0 RC1