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 » » Вопросы новичков » Возврат к заполненной форме

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

1. varfec - 23 Октября, 2019 - 12:16:02 - перейти к сообщению
Добрый день !Помогите сделать возврат к форме без потери вводимых заранее данных.
нужно присвоить пустые значения и вывести форму ?
понять пойму написать не напишу


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.  
2. Строитель - 23 Октября, 2019 - 13:53:55 - перейти к сообщению
Добавьте где удобно ссылку с аргументом onclick="window.history.back();"
3. LIME - 23 Октября, 2019 - 19:04:35 - перейти к сообщению
Строитель вот уж нет)
4. Строитель - 23 Октября, 2019 - 20:12:27 - перейти к сообщению
LIME, чем черевато?
5. LIME - 24 Октября, 2019 - 23:42:09 - перейти к сообщению
Это в принципе фигня какая то. То есть у вас ошибка будьте любезны вернуться по истории и тогда наверняка у вас такой браузер что форма заполнится сама пускай и с теми же ошибками. ))) ой нет
Это элементарная валидация формы. Завтра накарябаю короткий примерчик. Еще болею.
(Добавление)
Аахаха
Решил что проще нагуглить и дать ссылку и первый в поиске оказался какой-то урок из которого и взят код тс))
6. Строитель - 25 Октября, 2019 - 00:10:58 - перейти к сообщению
LIME пишет:
Это элементарная валидация формы

Ну так если в сессию писать данные из полей, то они останутся такими же не правильными (в случае не корректного ввода пользователем). Поэтому - какая разница, как их отображать?
7. LIME - 25 Октября, 2019 - 00:24:50 - перейти к сообщению
Строитель то есть ты предложил плохое решение. Тебе сказали что делается иначе. И ты тут же предполагаешь другое плохое и сам указываешь на это? А?!
Да проще все. Напишу
8. Строитель - 25 Октября, 2019 - 00:26:23 - перейти к сообщению
LIME пишет:
Напишу

Ок.
9. LIME - 25 Октября, 2019 - 18:36:56 - перейти к сообщению
На коленке за 2мин чисто обучалка всё в одном файле
Возможны различные вариации даже такого наивного кода
Можно добавить массив сообщений чтоб каждую ошибку отдельно итд
Спойлер (Отобразить)
10. LIME - 25 Октября, 2019 - 23:50:08 - перейти к сообщению
Кстати у тс check_length с необязательным первым параметром. Нельзя обязательные параметры располагать за необязательными. Хотя это не все огрехи, но этот прям бьет по глазам
11. Vladimir Kheifets - 30 Октября, 2019 - 16:59:14 - перейти к сообщению
LIME пишет:
На коленке за 2мин чисто обучалка всё в одном файле
Возможны различные вариации даже такого наивного кода
Можно добавить массив сообщений чтоб каждую ошибку отдельно итд
Спойлер (Отобразить)

в этой обучалке за 2 минуты, $className = 'error'; , видимо в спешке потерялся Радость
PHP:
скопировать код в буфер обмена
  1.  { // добавили сообщение
  2.            $msg = "Заполните пустые поля";
  3.            $className = 'error';
  4.        }
Спойлер (Отобразить)
12. LIME - 30 Октября, 2019 - 17:40:33 - перейти к сообщению
Vladimir Kheifets нет
все правильно
ничего не забыто
(Добавление)
LIME пишет:
Возможны различные вариации даже такого наивного кода
это просто не сделано
как и многое другое
это примеры что в принципе можно сделать
примеры

 

Powered by ExBB FM 1.0 RC1