Помогите написать функцию проверки данных. Надо проверить являються ли в поле данные типа int, если да то $a = int ($a);\ Пробовал функцией is_int, но какие данные не вводи передает FALSE. Помогите сделать. Заранее спасибо.
С is_numeric есть определённые проблемы PHP: <?php $var = '0xFF'; print_r(is_numeric($var)); print '<br />' . intval($var); Код (Text): 1 0
Luge Мне в функции это все надо сделать, что бы приводить к int мне надо знать типа данных в поле. Вот еще одна проблемка назрела с использованием функции. Проблема в поле $login = check ($login);. Я не могу воспользоваться $login. Вот код там где использую: PHP: <?php include ("mysql.php"); include ("check.php"); $login = $_POST['login']; $login = check ($login); ?> Вот сама функция: PHP: <?php function check($info) { $info = htmlspecialchars ($info, ENT_QUOTES); $info = mysql_real_escape_string ($info); $info = trim ($info); if (is_numeric ($info)) $info = (int) $info; } ?>
Sergey89 С этим тоже проблема как и с is_numeric. Если же в поле будет '1fgf', то результат будет 1. Как здесь быть?
Если передано не число, то не добавляеться строка $a = (int) $a; если же число, то эта строка добавляеться.
Код правильный, но работает не верно. В разных случаях вместо 0, передает 1. Строка нужна что бы обезопасить данные которые передаються. Помогите!!!
PHP: <?php function check($info) { $info = htmlspecialchars ($info, ENT_QUOTES); $info = mysql_real_escape_string ($info); $info = trim ($info); if (is_numeric ($info)) $info = (int) $info; return ($info); } ?> Так? И это даст возможность использовать функцию?
Ага, если без этой строки педеать не int, а, например, string, то этот самый string начнет пожирать данные в БД сразу после записи :lol: Вот те вся проверка: PHP: $a=$a/1; Если будет передана строка, то переменная $a примет int'овое значение 0
Solution! PHP: <? function the_int($var) { $parr=(string)intval($var); return $parr==$var?true:false; }
Вот решил проблемку, оцените: PHP: <?php function check($info) { $info = htmlspecialchars ($info, ENT_QUOTES); $info = mysql_real_escape_string ($info); $info = trim ($info); $info = substr ($info, 0, 50); $type = intval ($info); $type = (string) $type; if ($type == $info) $info = (int) $info; } ?>
Трындец функция. И это для проверки, является ли строка числом. 1. Сначала систятся хтмл-теги 2. Потом экранируются кавычки 3. Далее обрезаются пустоты 4. Обрезается до 50 символов 5. Это месиво приводится к числу 6. Число приводится к строке 7. Идет проверка, равна ли отредактированная-числострока и отредактированная строка, если да, то отредактированную строку снова переводим в число. Это караул, товарищи. Даже если входящая переменная не равна числу, то её использовать все равно нельзя будет. ЗАЧЕМ ВСЕ ЭТО?
Kreker Тут ,как я понял, типа строка обрабатывается по-всякому, для дальнейшего использования, а потом если оказывается, что в строке только цифры, то еще и присваивается типа int :lol:
Kreker Что можете посоветовать? И проверка не только, являеться ли строка числом. Если string, то PHP: $info = htmlspecialchars ($info, ENT_QUOTES); $info = mysql_real_escape_string ($info); $info = trim ($info); $info = substr ($info, 0, 50); если же int, а для того что бы определить int или нет выполняеться: PHP: $type = intval ($info); $type = (string) $type; if ($type == $info) если int, то PHP: $info = (int) $info;