[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IF (но другое)
JeJ
<?php
$result0000 = mysql_query("SELECT admin FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'",$db);
$myrowe = mysql_fetch_array($result0000);
?>

<?php
if ($myrowe['admin'] == 1)
{
include ("blocks/nav.php");
}
else {
echo "HI";
}
?>

В чём тут ошибка ?



Спустя 13 минут, 47 секунд (9.04.2009 - 09:19) sergeiss написал(а):
mysql_fetch_array - тут ошибка; если ты хочешь использовать $myrowe['admin'], то тогда вместо mysql_fetch_array используй mysql_fetch_assoc.
И еще:
* нету защиты от SQL-инъекции
* нету контроля количества строк - не повредит
* используются разные стили расстановки скобок (это не ошибка, но лучше делать однотипно, т.к. для тебя же удобнее будет)

Спустя 18 минут, 57 секунд (9.04.2009 - 09:38) JeJ написал(а):
защита от SQL - ИНЪЕКЦИИ у меня такая:

<?php
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!</p><p>Такие фокусы не проходят :-)<p>");
}
?>

Спустя 10 минут, 24 секунды (9.04.2009 - 09:49) sergeiss написал(а):
Насчет инъекции я погорячился, сорри smile.gif

А замена функции помогла в итоге?

Спустя 22 минуты, 32 секунды (9.04.2009 - 10:11) JeJ написал(а):
нет...

Спустя 7 минут, 11 секунд (9.04.2009 - 10:18) sergeiss написал(а):
Тогда текст в студию, и чуть подробнее, что происходит!

Кстати, все-таки оцени, сколько строк выбирается. Вдруг у тебя нет такой записи в БД?

PS. А "проверку" айди можно по-другому сделать, при этом любые попытки инъекции отпадают автоматически:
PHP
$id=intval( $_GET['id'] );

Это даже не проверка, а просто "грамотное" назначение переменной.
Быстрый ответ:

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