- Очистка данных из форм в PHP
- Использование класса
- Логический тип (0 или 1)
- Целое положительное число
- Десятичные дроби
- Цена
- Строка
- Текст
- HTML
- ЧПУ
- Имя файла
- Unix Timestamp
- Необходимо скрыть форму после отправки
- Как очистить форму после отправки?
- How to clean form input data in PHP
- What are HTML forms?
- How to clean input data and validate the form
- Sample cleaning and validation
- PHP — Как скрыть форму после отправки
Очистка данных из форм в PHP
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
Для таких целей был написан статический класс clean.php
Использование класса
1 2 3 4 5
require_once '/classes/clean.php'; if (isset($_POST['submit']))
Далее описание функций с примерами:
Логический тип (0 или 1)
Подходит для сhekbox, возвращает 1 или 0. Если значение пусто, то возвращается значение $default .
echo Clean::bool('on'); // 1 echo Clean::bool('off'); // 0 echo Clean::bool('true'); // 1 echo Clean::bool('false'); // 0
Для очистки одномерных массивов есть функции:
Clean::boolArray($value, $default); – вернет очищенный массив.
Clean::boolList($value, $default, $separator); – вернет строку значений через разделитель (по умолчанию , ).
Целое положительное число
Для очистки численных значений.
echo Clean::int(' 123 '); // 123 echo Clean::int('123.5'); // 123
Clean::intArray($value, $default);
Clean::intList($value, $default, $separator);
Десятичные дроби
Может быть отрицательным, заменяет , на . .
echo Clean::float(' 123 '); // 123 echo Clean::float('123.5'); // 123.5 echo Clean::float('-18.05'); // -18.05
Clean::floatArray($value, $default);
Clean::floatList($value, $default, $separator);
Цена
echo Clean::price('10 000 рублей'); // 10000.00 echo Clean::price('928,50 ₽'); // 928.50 echo Clean::price('165.36'); // 165.36 echo Clean::price('$115.99'); // 115.99 echo Clean::price('100,000.00'); // 100000.00
Clean::priceArray($value, $default);
Clean::priceList($value, $default, $separator);
Строка
Строка текста без переносов строк, подходит для и др.
- Удаляются теги и комментарии;
- Двойные пробелы заменяются на один;
- Спецсимволы заменяются на мнемоники;
echo Clean::str('Заголовок
'); // Заголовок echo Clean::str('">alert 1'); // ">alert 1 echo Clean::str("Строка 1\r\nСтрока 2"); // Строка 1 Строка 2
Clean::strArray($value, $default);
Clean::strList($value, $default, $separator);
Текст
Работает также как Clean::str() , но с сохранением переносов строк. Используется для .
echo Clean::text("Строка 1\r\nСтрока 2");
Clean::textArray($value, $default);
Clean::textList($value, $default, $separator);
HTML
Не рекомендуется использовать на фронте сайта т.к. только экранируются кавычки.
ЧПУ
echo Clean::sef('Опознание поломки'); // opoznanie-polomkiremont-hp echo Clean::sef('Ремонт HP'); // remont-hp
Clean::sefArray($value, $default);
Clean::sefList($value, $default, $separator);
Имя файла
Очищает название файла от запрещенных символов.
echo Clean::filename('файл.jpg'); // файл .jpg
Clean::filenameArray($value, $default);
Clean::filenameList($value, $default, $separator);
Unix Timestamp
Преобразует дату в Unix Timestamp.
echo Clean::time('14.08.2019'); // 1565730000
Clean::timeArray($value, $default);
Clean::timeList($value, $default, $separator);
Необходимо скрыть форму после отправки
Скрыть форму после отправки
Помогите пожалуйста. никак не дойду до решения того как скрыть форму после отправки <!DOCTYPE.
Скрыть форму после отправки
Привет всем! Подскажите пожалуйста что нужно изменить в этом коде чтобы после отправки форма.
Как очистить форму после отправки?
Всем доброго дня и приятных выходных. Ситуация следующая: пишу простую форму с отправкой данных.
Как можно обнулить форму после отправки?
Всем привет! Есть форма ввода данных с аттачем в ПХП-файле: . <form method="post".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
if(isset($_POST['submitData'])) { $name = htmlspecialchars($_POST['name']); $surname = htmlspecialchars($_POST['surname']); if(!empty($name) && !empty($surname)) { $_SESSION['true_false'] = true; echo 'Congratulations! Your forf has send succesfully!
'; echo 'Your name: "'.$name.'". Your LastName: "'.$surname.'".'; mysql_connect('localhost','root','') or die (mysql_error ()); mysql_select_db("db") or die(mysql_error()); mysql_query ("INSERT INTO `People` (`FirstName`,`LastName`) VALUES('$name','$surname')"); mysql_close(); }else{ echo "Wrong info!Please repeat!"; } } ?> if(isset($_POST["submitData"])): ?> endif ?>
Как очистить форму после отправки?
Ситуация следующая: пишу простую форму с отправкой данных на почту. Проблема заключается в том, что после отправки (если перезагрузить страницу), данные вновь отсылаются на почту, то есть сообщение дублируется.
Погуглил, вроде проблема должна решаться header(«location:site.ru»); однако это мне не помогло, или я, скорее всего, ошибся где-то.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
script type="text/javascript"> function validate_form ( ) { valid = true; if ( document.taxionline.name.value == "" ) { alert ( "Пожалуйста заполните поле 'Ваше имя'." ); valid = false; } else if (document.taxionline.tel.value == "") { alert ("Пожалуйста, введите Ваш телефон"); valid = false; } else if (document.taxionline.ulica.value == "") { alert ("Пожалуйста, укажите улицу"); valid = false; } else if (document.taxionline.dom.value == "") { alert("Пожалуйста, укажите дом"); valid = false; } else if (document.taxionline.pod.value == "") { alert("Пожалуйста, укажите подъезд"); valid = false; } else if (document.taxionline.ulica1.value == "") { alert ("Подалуйста, укажите улица назначения"); valid = false; } else if (document.taxionline.dom1.value == "") { alert("Пожалуйста, укажите дом назначения"); valid = false; } else if (document.taxionline.time.value == "") { alert ("Пожалуйста, укажите время подачи автомобиля"); valid = false; } return valid; } //--> script>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37