Как удалить форму 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"])): ?>
Name:
Last Name:
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
 

* Ваше имя:

* Номер телефона (желательно в фед. формате):

* Адрес подачи автомобиля:

* Адрес назначения:

* Время подачи:


$message = 'ФИО клиентаТелефон клиентаАдрес подачи автомобиляАдрес назначенияВремя подачи'; $message .= '' . $_REQUEST['name'] . ''; $message .= '' . $_REQUEST['tel'] . ''; $message .= '' . $_REQUEST['ulica'] . " " . $_REQUEST['dom'] . " " . $_REQUEST['pod'] . ''; $message .= '' . $_REQUEST['ulica1'] . " " . $_REQUEST['dom1'] . ''; $message .= '' . $_REQUEST['time'] . ''; $name = $_REQUEST['name']; $headers = "Content-type: text/html; charset=utf-8 \r\n"; $headers .= "From: \r\n"; if (isset($_REQUEST['name']) && isset($_REQUEST['tel']) && isset($_REQUEST['ulica']) && isset($_REQUEST['dom']) && isset($_REQUEST['pod']) && isset($_REQUEST['ulica1']) && isset($_REQUEST['dom1']) && isset($_REQUEST['time'])) { echo mail("zhumashev.timur@gmail.com", $name, $message, $headers) . 'Ваша заявка успешно отправлена.'; } header("Location: http://taxi-international.ru"); ?>

Добавлено через 1 минуту
буду очень благодарен если укажете на ошибки (или другие, более простые решения).

Источник

How to clean form input data in PHP

Many candidates are rejected or down-leveled due to poor performance in their System Design Interview. Stand out in System Design Interviews and get hired in 2023 with this popular free course.

What are HTML forms?

Forms are used to collect data from users and send it to the backend code which communicates with the database in a web application. A form starts and ends with the tags and it is a block element with other sub tags like , , and the rest.

Let’s take a look at a simple form below.

How to clean input data and validate the form

To prevent the dangers posed by submitting data to the database using forms, we can use the following PHP functions.

  1. htmlspecialchars() : This will escape all HTML tags which are attached to the form. So, if a user inputs something like this,
 

it will be converted by the function <script>location.href(‘http://www.badscript.com’)</script> .

By doing this, we can catch an attempt as an error in our code. The attack will be read as wrong input.

  1. trim() : This function will remove spaces, extra tabs and new lines from both ends of strings that are passed as arguments to it.
  2. stripslashes() : This will strip off any backslahes from our user’s input.
  3. The MySQLi class has some methods that can perform validation, like escaping special characters. For example, mysqli->real_escape_string() will clean its argument.

Now, let’s validate the simple form introduced at the beginning of this shot together.

Sample cleaning and validation

 
action=""
method="post">
Name:
type="text" name="names">
E-mail:
type="text" name="email">
// define variables and set to empty values
$name = $email = "";
//check what request method is sent
if ($_SERVER["REQUEST_METHOD"] == "POST")
//check for the submit button click
if(isset($_POST['submit']))
//Clean our input with our cleaner function
$names = input_cleaner(($_POST["names"]));
$email = input_cleaner(($_POST["email"]));
>
//create our cleaner/validation function
function input_cleaner($input)
$input = trim($input);
$input = stripslashes($input);
$input = htmlspecialchars($input);
return $input;
>
?>

In the sample above, ?php echo htmlspecialchars($_SERVER[«PHP_SELF»]);? was given as the value of our action attribute. This means that the form is to be processed by the script in the same file.

Notice we escaped the address using htmlspecialchars() to avoid someone executing their scripts with our program so as to get some privileged information.

You can do more to protect your database using prepared statements. Check here on how to do so.

Learn in-demand tech skills in half the time

Источник

PHP — Как скрыть форму после отправки

У меня есть форма проверки имени домена, которая у меня есть в контейнере. После того, как я отправлю форму, будет проверена доступность имени домена, и сообщение будет показано в том же контейнере, что и форма. Когда сообщение отображается, я хочу, чтобы форма и первый H2 исчезли. Как я могу это сделать? Мой код:

 

Is uw domeinnaam nog vrij?

$domain_name is beschikbaar Vraag een offerte aan"; $availability = "yes"; >else< echo "

$domain_name is helaas bezet

Verhuis uw domein"; $availability = "no"; > mysql_query("INSERT domainnames SET dns='".$domain_name."', available='".$availability."', timestamp='".$date."'")or die(mysql_error()); > ?>

Также подумайте о том, чтобы иметь разные страницы, а не отдельные страницы с условным содержимым. Гугл для шаблонных движков, вроде «Smarty»

Вам не нужно использовать огромную форму в качестве примера для решения вашей проблемы. Пожалуйста — и это относится ко всем — сведите ваш пример кода к минимуму. Таким образом, будет легче: 1) прочитать код и 2) ответить на него, особенно. с исправлением кода. Просто как тот.

Источник

Читайте также:  Find php in debian
Оцените статью