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]   

> Без описания
Romarione
Отправлено: 05 Января, 2017 - 20:42:23
Post Id



Новичок


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


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




Господа! Помогите решить проблему!
Проблема в том, что если пользователь вводит что то не правильно, выходит сообщение об ошибке. НО запись в базу данных все равно идет.

Например если пользователь ввел email без @, то такой емел все равно попадает в таблицу базы данных. Как это исправить ?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.         session_start();
  4.         header('Content-Type: text/html; charset=utf-8');
  5.  
  6.         require_once("connectbase.php");
  7.        
  8.  
  9.        
  10.        
  11.        
  12.        
  13.        
  14.        
  15.         echo $email;
  16.         if (isset($_POST["submit"])) {
  17.                 $Email = htmlspecialchars ($_POST["email"]);
  18.                 $login = htmlspecialchars ($_POST["login"]);
  19.                 $password = htmlspecialchars ($_POST["password"]);
  20.                 $r_password = htmlspecialchars ($_POST["r_password"]);
  21.                
  22.                
  23.                 $_SESSION["email"] = $Email;
  24.                 $_SESSION["login"] = $login;
  25.                
  26.                 $error_email = "";
  27.                 $error_login = "";
  28.                 $error_password = "";
  29.                 $error_r_password = "";
  30.                 $error = false;
  31.                
  32.                 if ($Email == "" || !preg_match ("/@/", $Email)) {
  33.                        
  34.                         $error_email= "Введите корректный email!";
  35.                         $error = true;
  36.                        
  37.                        
  38.                        
  39.                 }
  40.                 if ($login == "") {
  41.                         $error_login = "Введите логин!";
  42.                         $error = true;
  43.                 }
  44.                 if ($password == "") {
  45.                         $error_password = "Ввведите пароль!";
  46.                         $error - true;
  47.                 }
  48.                 if ($r_password == "") {
  49.                         $error_r_password = "Введите пароль еще раз!";
  50.                         $error = true;
  51.                 }
  52.                
  53.                 if ($password == $r_password) {
  54.                        
  55.                         $password = md5($password);
  56.                        
  57.                         $query = mysql_query ("INSERT INTO users VALUES ('','$Email','$password')") or die (mysql_error ());
  58.                 }
  59.                        
  60.                         else {
  61.                                
  62.                         echo "ВВЕДЕНЫЕ ПАРОЛИ НЕ СОВПАДАЮТ, ВВЕДИТЕ ПАРОЛИ ЗАНОВО!";
  63.                 }
  64.                
  65.                 if (!$error) {
  66.                        
  67.                         echo "Вы ЗАРЕГЕСТРИРОВАНЫ!";
  68.                 }
  69.                
  70.                
  71.         }
  72.                
  73.                
  74.         mysql_close ();
  75.                
  76.        
  77.  
  78.        
  79. ?>
  80.  
  81. <!DOCTYPE html>
  82. <html>
  83. <head>
  84. <title> Hello world </title>
  85. </head>
  86.         <body>
  87.         <center>
  88.         <h2> Регистрация пользователя </h2>
  89.         <form name="reg" method="POST" action="">
  90.         <input type="text" name="email" required placeholder="Email" VALUE="<?= $_SESSION["email"]?>"/><br>
  91.                 <span style="color:red"> <?= $error_email ?> <br> </span>
  92.         <input type="password" name="password" required placeholder="Пароль"/><br>
  93.                 <span style="color:red"> <?= $error_password ?> <br> </span>
  94.         <input type="password" name="r_password" required placeholder="Пароль еще раз"/><br>
  95.                 <span style="color:red"> <?= $error_r_password ?> <br> </span>
  96.         <input type="submit" name="submit" VALUE="Зарегистрироваться"/><br>
  97.         </form>
  98.         </center>
  99.         </body>
  100. </html>
  101.  
 
 Top
Строитель Модератор
Отправлено: 05 Января, 2017 - 23:02:47
Post Id



Участник


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


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




Romarione, запрос на добавление в базу нужно перенести в другое условие. И ещё надо в форму добавить инпут для ввода логина (добавите его самостоятельно)
Спойлер (Отобразить)
 
 Top
Romarione
Отправлено: 06 Января, 2017 - 01:39:56
Post Id



Новичок


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


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




Спасибо за помощь.
запрос перекинул в if(!error) и все пошло как по маслу =)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB