проверка формы в php

Вопрос в том, как вы предотвращаете ввод ошибочных данных в таблицу mysql. Можете ли вы дать мне код.или логику. Перед выполнением запроса на вставку?

Related of "проверка формы в php"

Предполагая, что у вас есть форма с кнопкой отправки с именем «submit» и поле ввода с именем «ваше имя», вы можете сделать что-то вроде этого. Весь этот код будет в том же файле.

 <?php //Form submitted if(isset($_POST['submit'])) { if(!isset($_POST['yourname'])) { //Form field 'yourname' didn't have a value $error['yourname'] = "<p>Please provide your name.</p>\n"; } else { //Field 'yourname' had a value, check other things //Your other checks here (optional) } //No errors, process form if(!is_array($error)) { //Process your form //Done processing echo "<p>Information saved.</p>"; exit; } } ?> <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> <?=$error['yourname']?> <p><label for="yourname">Name:</label><input type="text" id="yourname" name="yourname" value="<?=htmlspecialchars($_POST['yourname'])?>" /></p> <p><input type="submit" name="submit" value="Submit" /> </form> 

метод, который мне нравится использовать, это (это в контексте приложения MVC)

  1. Форма в представлении установлена ​​в POST обратно на собственный URL.
  2. Когда контроллер получает запрос POST, выполняется проверка. Если ошибки не найдены, выполняется соответствующее действие, а затем перенаправление HTTP отправляется обратно в браузер, чтобы отправить их для исправления страницы успеха.
  3. Если проверка не завершена, отображается исходная форма, и в каждом поле отображаются введенные данные. Неверные поля отображают сообщения об ошибках.

Это зависит от того, насколько вы хотите, чтобы вы были валидацией.

Синтаксис довольно прямолинейный:

 $var = function_that_cleans_any_input($_POST['input_name']); 

Обычно проверяющие функции return false если это плохой ввод, поэтому, если требуется поле, вы можете использовать условие типа:

 if(!$var){ die("The input is not valid"); } 

Что касается безопасности, вы должны ВСЕГДА использовать строки scape, которые поступают от пользователя, прежде чем вставлять их в базу данных, это можно сделать с помощью mysql_real_scape_string, который предотвращает атаку, называемую mysql injection, которая очень распространена и очень опасна.

Если вы знаете, какое поле, которое вы проверяете, имеет определенный формат, я предлагаю вам подтвердить его, например, почту или URL-адрес, есть функция фильтра, которая довольно проста в использовании и может вам помочь в этом.

Если вход представляет собой int, кусок торта, используйте typecasting $validated = (int)$input; и это будет сделано, но если это дата, вы являетесь функцией native checkdate из php.

Как вы можете видеть, всегда есть функция, которая может сохранить день, если у вас возникли проблемы с проверкой чего-то, обязательно исследуйте его на деле, и если вы не найдете его, выполните свои собственные функции проверки.

Вот ссылка, которая может помочь: http: //hungred.com/useful-information/php-form-validation-snippets/