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 :: Подскажите пожалуйста что неправильно! [2]

 PHP.SU

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


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

> Описание: Форма авторизации
Botik
Отправлено: 31 Мая, 2016 - 23:54:14
Post Id



Новичок


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


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




Ну к примеру запоминать последние данные в сессия и сравнивать, если совпадают – не делать проверку и ничего не выводить.
 
 Top
Строитель Модератор
Отправлено: 01 Июня, 2016 - 17:50:28
Post Id



Участник


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


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




Red_man пишет:
Когда 'No correct' вылазиет, я обновляю страницу, а оно остается, как это исправить?
Надо сбрасывать данные, передаваемые методом POST. Я немного изменил ваш код, скопируйте и посмотрите результат.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. //////////////////// Подключение к БД ///////////////////////
  5.  
  6. $db = mysqli_connect('localhost', 'user1', '12345');
  7. mysqli_select_db($db, bdsite1);//функция, подключаемся к БД
  8.  
  9. $select = mysqli_query ($db, "SELECT log, passw FROM tabl1");//запрос к БД
  10. if (!$select) exit ('#01 Ошибка');
  11. $row = mysqli_fetch_row ($select);
  12. if (!$row) exit ('#02 Ошибка');
  13.  
  14. $out = '';
  15.  
  16. if ($_POST['button']) {
  17.     $log = $_POST['log'];
  18.     $passw = $_POST['passw'];
  19.          
  20.     if ($log == $row[0] && $passw == $row[1]) {
  21.         $_SESSION['auth'] = $log;
  22.         $out = 'Enter to admin -> <a href="admin.php">admin</a>';
  23.     } else {
  24.         $_SESSION['err'] = 'Not correct';
  25.         header('Location: '. basename(__FILE__));
  26.         exit;
  27.     }
  28. }
  29.  
  30. $out .= (!empty($_SESSION['err']) ? $_SESSION['err'] : '');
  31. unset($_SESSION['err']);
  32.  
  33. ?>
  34.  
  35. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:www.w3.org/TR/xhtml1-transitional.dtd">
  36. <html xmlns="http://www.w3.org/1999/xhtml">
  37. <head>
  38. <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
  39. <title> Админка и защита от взлома </title>
  40. </head>
  41. <body>
  42. <h1> Админка </h1>
  43. <div style="background-color:#D3D3D3; width:200px; padding:10px">
  44. <form method="post">
  45. Login:<br/>
  46. <input name="log" type="text" style="cursor:pointer"> <br/><br/>
  47. Password:<br/>
  48. <input name="passw" type="password" style="cursor:pointer"> <br/><br/>
  49. <input type="submit" name="button" value="Войти" style="cursor:pointer">
  50. </form>
  51. <?=$out?>
  52. </div>
  53. </body>
  54. </html>
А вообще, надо было в начале всё продумать, а потом уже набирать код. Например, у вас поля никак не проверяются, ни на длинну вводимого текста, ни фильтрации никакой нет. Для уведомлений о возможных ошибках можно было бы создать массив, и по мере появления ошибок, наполнять этот массив уведомлениями, ну и потом их выводить в браузер, чтоб юзер видел, что именно он написал не так.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB