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]   

> Описание: Ввел неверные данные ,вернуться к форе без потери других введеных данных
varfec
Отправлено: 23 Октября, 2019 - 12:16:02
Post Id


Новичок


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


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




Добрый день !Помогите сделать возврат к форме без потери вводимых заранее данных.
нужно присвоить пустые значения и вывести форму ?
понять пойму написать не напишу


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>form</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. </head>
  7. <body bgcolor=#cccccc>
  8. <form action="./name1.php" method="POST">
  9. <p>Имя:                 <input size="25" name="name" type="text"></p>
  10. <p>Фамилия:     <input name="surname" type="text"></p>
  11. <p>E-mail:              <input size="23" name="email" type="text"></p>
  12. <p>Телефон              <input size="21" name="phone" type="text"></p>
  13. <p>Сообщение:   <br /><textarea cols="38" name="message" cols="30" rows="5"></textarea></p>
  14. <p>                             <input type='submit' value='Отправить'></p>
  15.  
  16. </form>
  17. </body>
  18. </html>
  19.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  4.     // наш код
  5. }
  6.  
  7. $name = $_POST['name'];        //получаем данные от поля
  8. $surname = $_POST['surname'];
  9. $email = $_POST['email'];
  10. $message = $_POST['message'];
  11. $phone = $_POST['phone'];
  12.  
  13. echo "<html>\n";
  14. echo "<head>\n";
  15. echo "<title>данные</title>\n";
  16. echo "</head>\n";
  17. echo "<body>\n";
  18. echo "<table border=1>\n";
  19. echo "<tr>\n";
  20. echo "<td>$name</td>\n";
  21. echo "</tr>";
  22. echo "<tr>\n";
  23. echo "<td>$surname</td>\n";
  24. echo "</tr>\n";
  25. echo "<tr>\n";
  26. echo "<td>$email</td>\n";
  27. echo "</tr>\n";
  28. echo "<tr>\n";
  29. echo "<td>$message</td>\n";
  30. echo "<tr>\n";
  31. echo "<td>$name</td>\n";
  32. echo "</tr>\n";
  33. echo "</body>\n";
  34. echo "</html>\n";
  35.  
  36. function clean($value = "") {
  37.     $value = trim($value);                              //удаление пробелов
  38.     $value = stripslashes($value);              //удаление экранированных символов
  39.     $value = strip_tags($value);                //удаление хтмл и пхп тагов
  40.     $value = htmlspecialchars($value);  //преобразование спец символов в хтмл сущности
  41.    
  42.     return $value;
  43. }
  44.  
  45. function check_length($value = "", $min, $max) {
  46.     $result = (mb_strlen($value) < $min || mb_strlen($value) > $max);
  47.     return !$result;
  48. }
  49.  
  50. $name = clean($name);
  51. $surname = clean($surname);
  52. $email = clean($email);
  53. $message = clean($message);
  54.  
  55. if(!empty($name) && !empty($surname) && !empty($email) && !empty($message)&& !empty($phone)) {
  56.     $email_validate = filter_var($email, FILTER_VALIDATE_EMAIL);
  57.  
  58.     if(check_length($name, 2, 25) &&  preg_match("/^[a-zA-Z ]*$/",$name) && preg_match("/^[a-zA-Z ]*$/",$surname) && check_length($surname, 2, 50) && check_length($message, 2, 1000) && $email_validate && preg_match("/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/", $phone)) {
  59.         echo "Спасибо за сообщение";
  60.     } else { // добавили сообщение
  61.         echo "Введенные данные некорректны";
  62.     }
  63. } else { // добавили сообщение
  64.     echo "Заполните пустые поля";
  65. }
  66.  
  67. ?>
  68.  
 
 Top
Строитель Модератор
Отправлено: 23 Октября, 2019 - 13:53:55
Post Id



Участник


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


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




Добавьте где удобно ссылку с аргументом onclick="window.history.back();"
 
 Top
LIME
Отправлено: 23 Октября, 2019 - 19:04:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Строитель вот уж нет)
 
 Top
Строитель Модератор
Отправлено: 23 Октября, 2019 - 20:12:27
Post Id



Участник


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


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




LIME, чем черевато?
 
 Top
LIME
Отправлено: 24 Октября, 2019 - 23:42:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Это в принципе фигня какая то. То есть у вас ошибка будьте любезны вернуться по истории и тогда наверняка у вас такой браузер что форма заполнится сама пускай и с теми же ошибками. ))) ой нет
Это элементарная валидация формы. Завтра накарябаю короткий примерчик. Еще болею.
(Добавление)
Аахаха
Решил что проще нагуглить и дать ссылку и первый в поиске оказался какой-то урок из которого и взят код тс))
 
 Top
Строитель Модератор
Отправлено: 25 Октября, 2019 - 00:10:58
Post Id



Участник


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


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




LIME пишет:
Это элементарная валидация формы

Ну так если в сессию писать данные из полей, то они останутся такими же не правильными (в случае не корректного ввода пользователем). Поэтому - какая разница, как их отображать?
 
 Top
LIME
Отправлено: 25 Октября, 2019 - 00:24:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Строитель то есть ты предложил плохое решение. Тебе сказали что делается иначе. И ты тут же предполагаешь другое плохое и сам указываешь на это? А?!
Да проще все. Напишу
 
 Top
Строитель Модератор
Отправлено: 25 Октября, 2019 - 00:26:23
Post Id



Участник


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


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




LIME пишет:
Напишу

Ок.
 
 Top
LIME
Отправлено: 25 Октября, 2019 - 18:36:56
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




На коленке за 2мин чисто обучалка всё в одном файле
Возможны различные вариации даже такого наивного кода
Можно добавить массив сообщений чтоб каждую ошибку отдельно итд
Спойлер (Отобразить)
 
 Top
LIME
Отправлено: 25 Октября, 2019 - 23:50:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Кстати у тс check_length с необязательным первым параметром. Нельзя обязательные параметры располагать за необязательными. Хотя это не все огрехи, но этот прям бьет по глазам
 
 Top
Vladimir Kheifets
Отправлено: 30 Октября, 2019 - 16:59:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




LIME пишет:
На коленке за 2мин чисто обучалка всё в одном файле
Возможны различные вариации даже такого наивного кода
Можно добавить массив сообщений чтоб каждую ошибку отдельно итд
Спойлер (Отобразить)

в этой обучалке за 2 минуты, $className = 'error'; , видимо в спешке потерялся Радость
PHP:
скопировать код в буфер обмена
  1.  { // добавили сообщение
  2.            $msg = "Заполните пустые поля";
  3.            $className = 'error';
  4.        }
Спойлер (Отобразить)

(Отредактировано автором: 30 Октября, 2019 - 17:06:21)

 
 Top
LIME
Отправлено: 30 Октября, 2019 - 17:40:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Vladimir Kheifets нет
все правильно
ничего не забыто
(Добавление)
LIME пишет:
Возможны различные вариации даже такого наивного кода
это просто не сделано
как и многое другое
это примеры что в принципе можно сделать
примеры
 
 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