[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: GET + if
kuzya_101
if(!empty($_GET['num'])) {
$num = trim($_GET['num']);
} else {
$num = FALSE;
}
if($num) {
// Безопасен ли этот код?
}
Игорь_Vasinsky
ну нотис он вызвать способен))

$num = !isset($_GET['num']) || !is_numeric($_GET['num']) ? false : (int)$_GET['num']; 


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Цитата (Игорь_Vasinsky @ 29.01.2016 - 08:51)
ну нотис он вызвать способен))

$num = !isset($_GET['num']) || !is_number($_GET['num']) ? false : (int)$_GET['num']; 

Игорь, это что - is_number?

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
Медведь
это is_numeric()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Цитата (Игорь_Vasinsky @ 29.01.2016 - 09:44)
Медведь
это is_numeric()

Ему же пробелы только удалить. ТС не писал, что это число wink.gif


_____________
Принимаю заказы, писать в ЛС
xlebosol
Если названием переменной $num указываешь, что это число и ожидаешь тип INT, то причем здесь FALSE. Только PHP способен такое перенести.

$num = 0;
if(!empty($_GET['num'])) {
$num = trim($_GET['num']);
}
Игорь_Vasinsky
xlebosol
и снова нотис.

если нет у $_GET['num']

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
xlebosol
Цитата (Игорь_Vasinsky @ 29.01.2016 - 08:29)
xlebosol
и снова нотис.

если нет у $_GET['num']

Я не о нотисе, я о сменах типов переменных, назвал так, хочу bool сделаю, хочу int. а там через три строки смотри и уже array станет.
killer8080
Цитата (Игорь_Vasinsky @ 29.01.2016 - 10:29)
xlebosol
и снова нотис.

если нет у $_GET['num']

с чего бы? Там же проверка есть blink.gif
killer8080
Цитата (kuzya_101 @ 29.01.2016 - 08:44)
// Безопасен ли этот код?

а в чем должна быть опасность? Опасность не во входных данных, а в их неправильном использовании wink.gif
если ты эту переменную потом в таком виде просто подставишь в запрос к бд, будет SQLi, если в файловый путь, возможно LFI. А в самом этом коде ничего опасного нет.
Миша
Цитата (Игорь_Vasinsky @ 29.01.2016 - 10:29)
xlebosol
и снова нотис.

если нет у $_GET['num']

Проверка empty() есть, даже после trim(), если там были пробелы - будет просто пустая переменная.

Про конструкцию if
При преобразовании в boolean, следующие значения рассматриваются как FALSE:

само значение boolean FALSE
integer 0 (ноль)
float 0.0 (ноль)
пустая строка, и строка "0"
массив без элементов
объект без полей (только для PHP 4)
особый тип NULL (включая неустановленные переменные)
Объекты SimpleXML, созданные из пустых тегов

Все остальные значения рассматриваются как TRUE (включая любой resource).


_____________
Принимаю заказы, писать в ЛС
AllesKlar
kuzya_101
если ты ожидаешь число, то твой код неверен.
?num=0 он не пропустит



_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.