Я немного выше новичка с веб-программированием, и я мало знаю о проверке формы. В моих исследованиях кажется, что существует множество способов проверки данных формы, а некоторые из методов зависят от того, что вы собираетесь делать с данными. Тогда вы должны быть устаревшими функциями, такими как mysql_real_escape_string
и что-то, называемое «PDO», и все это совершенно сложно.
Итак, было бы разумно / возможно, чтобы существовал набор функций, которые в основном являются стандартным способом проверки данных формы? Как это…
function validate_for_sql() function validate_for_email() function validate_for_browser()
Может быть, должно быть больше (что-то для целых чисел?). Идеальными были бы такие вещи, как инъекции sql и другие гадости, ВСЕ СЛЕДУЕТ обращаться через набор общепринятых и прочных функций, разработанных и для сообщества кодирования.
Это выполнимо? Он уже где-то существует .. может быть, в скрытом логове? Если да, может ли кто-нибудь отправить мне секретный пароль, необходимый для доступа к этой информации? 🙂
Позвольте мне подвести итог вашему вопросу: «Было бы разумно / возможно, чтобы существовал набор функций, общепринятых, единообразных и твердых, которые в основном являются стандартным способом проверки данных формы?»
Если то, что я суммирую, верно, тогда ответ будет следующим: jQuery Validation . Как указано в названии, для выполнения этой работы вам необходимы jQuery и jQuery Validation.
Ниже приведен пример использования этих инструментов.
HTML:
<form id="myForm"> <input type="text" name="currency"> <input type="text" name="amount"> </form>
Javascript:
$("#myForm").validate({ rules: { "currency": { minlength: 3, required: true }, "amount": { number: true } } });
По умолчанию для KeyUp запускается проверка . Поэтому, когда пользователь меняет, скажем, валюту поля и нарушает одно из вышеприведенных правил, jQuery Validation автоматически выдаст сообщение для предварительной сборки.
Это сообщения предварительной сборки для правил выше:
Что делать, если вы хотите проверить, доступна ли валюта в таблице нашего обменного курса?
Ответ: просто добавьте специальный метод проверки.
$.validator.addMethod("checkCurrency", function(value, element) { var result = false; $.ajax({ type:"GET", async: false, url: "012_ajax.php", // script to validate in server side data: {currency: value}, success: function(data) { result = (data == "1") ? true : false; } }); // return true if currency is exist in database return result; }, "Currency is not exist." ); $("#myForm").validate({ rules: { "currency": { minlength: 3, required: true, checkCurrency: true }, "amount": { number: true } } });
С помощью этого кода каждый раз, когда пользовательская запись неистинная валюта в таблице, форма всегда показывает сообщение «Валюта не существует».
Последний вопрос: могу ли я создать собственное сообщение для этого плагина?
Ответ: ДА.
$("#myForm").validate({ rules: { "currency": { minlength: 3, required: true, checkCurrency: true }, "amount": { number: true } }, messages: { "currency": { minlength: "Currency should at least 3 char or more", required: "Currency is required" }, "amount": { number: "Amount must be number" } } });
Теперь каждый раз пользователь нарушил правила выше, форма будет давать сообщения как состояние в коде выше.
Важное значение этого плагина, как и любая проверка формы, заключается в том, что данные не будут отправляться до тех пор, пока данные не будут проверены. Ну, пока пользователь не отключает / отключает javascript из своего браузера. 🙂
Ответ выше для проверки на стороне клиента.
Для проверки на стороне сервера в Интернете есть скрипты проверки подлинности PHP, среди которых:
У них есть встроенные правила проверки, и пользователь может добавить пользовательские.
Надеюсь, эта помощь.
Если я понимаю ваш вопрос, то да, это возможно, передавая значения входных данных такого типа, как параметры, в функции. Я уверен, что если вы будете искать в Интернете, вы найдете некоторые готовые функции, которые сделают это. Но они не занимают много времени, а создание их повысит ваши навыки. Было бы неплохо иметь что-то подобное, и на самом деле ASP.NET действительно имеет встроенную проверку, но я боюсь, что PHP не (насколько мне известно).
Вы принципиально недопонимаете это.
Точка выхода из строки – это позволить вам вставлять ее в структурированную строку без выхода из структуры (например, SQL-инъекция, XSS и т. Д.).
Всякий раз, когда вы вставляете строку в какую-либо структуру, вам нужно избегать ее для этой структуры, чтобы полученная строка имела смысл.
Если вы избежите его для другой структуры (например, HTML-escape-строка и поместите ее в SQL-инструкцию), вы представите как дыру в безопасности, так и ошибку.