imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 07.09.2006, 17:15     # 1
Olegat
Newbie
 
Аватар для Olegat
 
Регистрация: 16.12.2005
Сообщения: 24

Olegat Нуль без палочки
Aтрибут ISMAP

Пытаюсь использовать атрибут ISMAP тэга IMG.

<A HREF="http://127.0.0.1/map.php"><IMG SRC="map.gif" ISMAP></A>

Координаты передаются по ссылке в файл 127.0.0.1/map.php в виде данных после знака «?» http://127.0.0.1/map.php?284,147.
Как можно эти координаты в файле 127.0.0.1/map.php перевести в переменные для их дальнейшего использования в сценарии PHP (конвертировать координаты клика мышки в переменные сценария)желательно при помощи PHP?
Olegat вне форума  
Старый 07.09.2006, 17:22     # 2
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Код:
list($xcrd, $ycrd) = explode(',', $_SERVER['QUERY_STRING']);
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 07.09.2006, 17:31     # 3
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Не совсем правильно.

if (preg_match('/(?:^|\?)(\d+)\,(\d+)$/',$_SERVER['QUERY_STRING'],$m)) list($null,$x,$y) = $m;

Последний раз редактировалось RaZEr; 07.09.2006 в 17:55.
RaZEr вне форума  
Старый 07.09.2006, 17:50     # 4
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Ты путаешь QUERY_STRING и REQUEST_URI. Первый суть подстрока второго после знака ?. Потому твой регэксп не пройдет, т.к. знака ? в QUERY_STRING не будет. А задачи проводить валидацию входных параметров топикстартер не ставил - соответственно и получил ответ.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 07.09.2006, 17:58     # 5
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Нет, я ничего не путаю. Впиши в ссылку script.php?act=go&mode=sat и он сделает script.php?act=go?10,20 и ты получишь x="act=go&mode=sat?10"
RaZEr вне форума  
Старый 08.09.2006, 09:04     # 6
Olegat
Newbie
 
Аватар для Olegat
 
Регистрация: 16.12.2005
Сообщения: 24

Olegat Нуль без палочки
Заработал код :
list($xcrd, $ycrd) = explode(',', $_SERVER['QUERY_STRING']);
echo "$xcrd, $ycrd <br/>";
– показал координаты

Код :
if (preg_match('/\?(\d+)\,(\d+)$/',$_SERVER['QUERY_STRING'],$m)) list($null,$x,$y) = $m;
echo "$x, $y <br/>";
показал только «,»

После исправления фильтра второй код заработал – показал координаты аналогично первому коду.

if (preg_match("/(\d+),(\d+)/",$_SERVER['QUERY_STRING'],$m)) list($null,$x,$y) = $m;
echo "$x, $y <br/>";

Скорее всего в регулярных выражениях что-то. Он работает только когда ссылка имеет вид script.php?act=go?10,20, а когда script.php?10,20 – не работает. А первый скрипт наоборот – если ссылка имеет вид script.php?act=go?10,20

list($xcrd, $ycrd) = explode(',', $_SERVER['QUERY_STRING']);
echo "$xcrd, $ycrd <br/>";

выводит « act=go?10,20 ».

Последний раз редактировалось Olegat; 08.09.2006 в 10:40.
Olegat вне форума  
Старый 08.09.2006, 11:34     # 7
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Olegat
Посмотри выше внимательней - там RaZEr еще вчера исправленный код привел.

Либо аналог без регэкспов и без валидации:
PHP код:
$query $_SERVER['QUERY_STRING'];
$quespos strrpos($query'?');
list(
$xcrd$ycrd) = explode(','$quespos === false $query substr($query$quespos+1)); 
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti

Последний раз редактировалось Saruman; 08.09.2006 в 11:37.
Saruman вне форума  
Старый 08.09.2006, 15:45     # 8
Olegat
Newbie
 
Аватар для Olegat
 
Регистрация: 16.12.2005
Сообщения: 24

Olegat Нуль без палочки
Да, я не обратил внимания на изменения в топике.
После замены ('/(?:^|\?)(\d+)\,(\d+)$/') в регулярных выражениях всё заработало.
Спасибо всем!
Olegat вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:06.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.