PHP: <? function check($info) { if (!is_numeric($info)) { $info = htmlspecialchars ($info, ENT_QUOTES); $info = mysql_real_escape_string ($info); $info = trim ($info); $info = substr ($info, 0, 50); } return $info; }
ну и я тоже хочу! %) Код (Text): function isNum($value) { return (preg_match("/^[0-9]+$/", $value)); }
Такой вариант пробовал, вот только проблема, что если $info будет содержать '1fgf', то будет 1, а не 0. В этом то и заключаеться вся проблема.
Обьясняю, необходимо такую проверку заключить в функцию: PHP: $id = $_GET['id']; $id = htmlspecialchars ($id, ENT_QUOTES); $id = mysql_real_escape_string($id); $id = trim ($id); $id = (int)$id; Но так же есть вариант: PHP: $text = $_POST ['announcement']; $text = htmlspecialchars ($text, ENT_QUOTES); $text = mysql_real_escape_string($text); $text = trim ($info); Это надо совместить, тоесть надо использовать $id = (int)$id; только тогда когда значение может быть только числом, а не всегда. Будут вопросы задавайте
Давайте разберемся. Себе Вы передаете всегда правильные параметры, а проверка идет для подстраховки. Это значит, что для id нужно проверять, является ли он числом или нет. if ((int)$_GET["id"] != $_GET["id"]) { //Не является } Если Вам необходимо передать текст, то нет необходимости его сразу экранировать разными способами. Обрабатывать надо в зависимости от ситуации.
Почти) Если передаеться id, то оно должно обязательно быть числом. Как мне это все в функцию записать? P.S. Можно на ты.
PHP: <? function check($id) { if (!is_numeric($id)) { //die("офигел шоле сцуко?!"); return 0; } return (int) $id; } // То есть function check($id) { return is_numeric($id) ? $id : 0; }
Я вопрос задал. Русскими словами, скажи, какого результата ты хочешь добится? Только без терминов и прочих абстракций. Просто, одинм предложением, по русски.
Прогресс! Безопасность данных при использовании зависит от места использования. Для сохранения в HTML-файл не нужно устранять sql-инъекции, для записи в БД не нужно заботиться о тегах. Данные опасными быть не могут, может быть опасным их использование. Где твои данные будут использоваться? Upd. Йа флудер!
данные, будучи употребленные в запросе - это опасные данные. всегда. поэтому нужно позаботиться об их экранировании. и точка.
Горбунов Олег согласен, зубов нет, и нет вообще ничего материального. про зубы никто и не спорит. скажи, sql-i на пустом месте появилась?