Slaughter
Новичок
Проверка значения $_GET['id']
есть таблица из сайтов
есть id каждого сайта
пишу: http://server/links.php?id=5
вот хочу проверить id (id=цифра? если да, то все супер, если нет, то работает функция err())
Вот скрипт:
но по загадочным обстоятельствам половина ссылок работает как надо (т.е. выводит err()
, а другая половина не работает (я так понимаю, скрипт продолжает открывать сайт)
Ну, например, если я введу:
http://server/links.php?id=5dsffsdf
то в первом случае сработает err()
а во втором продолжит работать скрипт и вытащит из базы сайт с id=5
еще хочу заметить, что не работют только определенные id
что делать? или как лучше это сделать?
Спасибо.
есть таблица из сайтов
есть id каждого сайта
пишу: http://server/links.php?id=5
вот хочу проверить id (id=цифра? если да, то все супер, если нет, то работает функция err())
Вот скрипт:
PHP:
//функция ошибки
function err()
{
$page="error.php";
header("Location: $page");
}
//функция вывода ссылки (сайта)
function show_link()
{
//обращение к базе
}
//сам скрипт
if ($_SERVER['REQUEST_METHOD']=='GET')
{
$table="links";
//смотрим max значение id
$querya = "SELECT `id` FROM `$table`";
$res=mysql_query($querya,$link);
$k=0;
while ($line = mysql_fetch_array($res))
{
$id[$k]=$line[0];
}
$idmax = $id[$k];
$id=$_GET['id'];
//дальше идет проверка, которая почему-то работает через раз)))
if (empty($_GET['id']))
{
err();
}
elseif ($_GET['id'])
{
if (!preg_match("/^[0-9]+$/", $_GET['id'])) err();
}
else
{
err();
}
if (($id>=1)&&($id<=$idmax))
{
show_link();
}
else
{
err();
}
}
else
{
err();
}

Ну, например, если я введу:
http://server/links.php?id=5dsffsdf
то в первом случае сработает err()
а во втором продолжит работать скрипт и вытащит из базы сайт с id=5
еще хочу заметить, что не работют только определенные id
что делать? или как лучше это сделать?
Спасибо.