Просто используйте var_dump()
, чтобы увидеть, что в $_POST
:
var_dump($_POST);
И вы увидите, что когда ваша форма отправляется с использованием <input type="image">
, вы получаете:
array
'buyuka_x' => string '0' (length=1)
'buyuka_y' => string '0' (length=1)
Итак, нет $_POST['buyuka']
- вместо этого есть:
$_POST['buyuka_x']
- и
$_POST['buyuka_y']
Это означает, что ваш код должен выглядеть следующим образом (не тестирование для несуществующей записи buyuka
, а тестирование для двух _x
и _y
- я полагаю, что тестирования для одного из них должно быть достаточно ) :
if(isset($_POST['buyuka_x'], $_POST['buyuka_y']))
{
$sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
Редактировать после комментариев: Понятия не имею почему так и происходит - но наличие .x
и .y
- это то, как это определено в стандарте HTML .
Если вы посмотрите форм в документах HTML и прокрутите немного вниз, вы сможете прочитать:
Когда указательное устройство используется для
нажмите на изображение, форма
отправлено и координаты клика
перешел на сервер.
Значение х
измеряется в пикселях слева от
изображение и значение у в пикселях
с верхней части изображения.
The
представленные данные включают
name.x=x-value
и name.y=y-value
где «имя» - это значение имени
атрибут, и значения х и значения у
значения координат x и y,
соответственно.
В PHP точки в именах параметров автоматически заменяются на и отменяются.
Итак:
name.x
становится name_x
- и
name.y
становится name_y
В качестве источника для этого последнего оператора вы можете прочитать Переменные Из внешних источников - HTML-формы (GET и POST) (цитирование) :
Точки и пробелы в именах переменных
преобразован в подчеркивание.
Для
пример <input name="a.b" />
становится
$_REQUEST["a_b"]
.