Че за дырка ?

olegking

Guest
Че за дырка ?

Почему всё равно удаляется, передаю вот такое вот:
users.php?delete=1?is_js_confirmed=1

if ($delete=='1')$errors[]="Нельзя удалить главного админа<BR>";
if (isset($errors)) foreach ( $errors as $error )echo "$error"; else {
$sqldel="delete from `users` where id='$delete'";
mysql_query($sqldel);

И запрос в итоге:
delete from `users` where id='1?igfdg'
НО ВСЁ РАВНО УДАЛЯЕТСЯ ТА СТРОКА ГДЕ ид=1
 

SelenIT

IT-лунатик :)
В пхп сравниваются строки '1?is_js_confirmed=1' и '1', которые действительно не равны. А MySQL преобразует данные запроса к типу поля id (очевидно, INT), и поскольку строка начинается с единицы, ее числовое значение равно 1.

Лучше, наверное, сразу проверять if (intval($delete)==1) ...
 

olegking

Guest
10x, не знал честно говоря, думаю не я один такой
 

AHTIXPICT

Новичок
А че за конструкция:

users.php?delete=1?is_js_confirmed=1

может надо исправить на:

users.php?delete=1&is_js_confirmed=1
 

olegking

Guest
нет, я просто ошибся и нечайно передал такую строку, а она вдруг выполнилась без ошибки, причем того чего делать нельза
 
Сверху