Вопрос в том, как вы предотвращаете ввод ошибочных данных в таблицу mysql. Можете ли вы дать мне код.или логику. Перед выполнением запроса на вставку?
Предполагая, что у вас есть форма с кнопкой отправки с именем «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)
Это зависит от того, насколько вы хотите, чтобы вы были валидацией.
Синтаксис довольно прямолинейный:
$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/