защита на $_GET['id']

tyrla4eto

Registered
Какво да сложа на $id = $_GET['id']; за да проверява дали id-то съдържа сами цифри?? Ако съдържа цифри да продължава ако не да изписва, че съдържа не позволени символи.
 
Ами ако му даде отрицателна стойност ??

function int_protect($id) {
$id = (int) $id;
if ($id == 0 || $id == NULL || $id < 0) {
$id = 1;
}
return $id;
}

$id = int_protect($_GET['id']);
 
t0shk0 каза:
Ами ако му даде отрицателна стойност ??

function int_protect($id) {
$id = (int) $id;
if ($id == 0 || $id == NULL || $id < 0) {
$id = 1;
}
return $id;
}

$id = int_protect($_GET['id']);

Чак пък фунцкия не е нужна.

PHP:
$id = (int)$_GET["id"];
if($id <= 0)
{
die("Error");
}

Нещо такова вероятно ще свърши работа.
 
Karcho каза:
t0shk0 каза:
Ами ако му даде отрицателна стойност ??

function int_protect($id) {
$id = (int) $id;
if ($id == 0 || $id == NULL || $id < 0) {
$id = 1;
}
return $id;
}

$id = int_protect($_GET['id']);

Чак пък фунцкия не е нужна.

PHP:
$id = (int)$_GET["id"];
if($id <= 0)
{
die("Error");
}

Нещо такова вероятно ще свърши работа.

Направих функция, защото по принцип в сайтовете се използва често get на id-та и за да не пише навсякъде проверки.. Мисля че така е по-лесно
 
За това по-добре проверявай с is_numeric.Какво става, ако числото е извън int? (int) 2147483648 = 0
 

Back
Горе