get со знаками ;

shiyri

Добрый день, делаю адресную книгу со ссылками типа:
http://admin:admin@192.168.0.161/cgi-bin/ConfigManApp.com?key=F_HANDFREE;000@1;OK
а при переходе получается
http://admin:admin@192.168.0.161/cgi-bin/ConfigManApp.com?key=F_HANDFREE%3B000%401%3BOK
как сгенерировать нормальную ссылку?

PHP:
  1.        
  2.         <form method=«get» action=«http://admin:admin@’.$ip.’/cgi-bin/ConfigManApp.com»>
  3.         <input type=«hidden» name=«key» value=«F_HANDFREE;’.$row[‘phone’].’@1;OK»>
  4.         <button id=«payment-button» type=«submit» class=«btn btn-lg btn-info btn-block»>
  5.         <i class=«fa fa-phone fa-lg»></i>&nbsp;
  6.          <span id=«payment-button-amount»>‘.$row[‘phone‘].’</span>                                                  
  7.           </button>
  8.          </form>        
 

miketomlin

Это и есть нормальный адрес. Браузер его тебе просто не показывает. В ссылках в HTML-коде тоже лучше такие использовать, чтобы браузер не пытался сам кодировать.
— Добавлено —
Вообще нефиг форму городить ради обычного перехода по ссылке. Тег A. Слыхали о таком? :)

 

shiyri

Эта ссылка дает команду ip телефону звонить по номеру 000, если я рукой вставляю с ; то звонок активизируется, если с другими знаками то ничего не происходит.
Как мне экранировать ; и @ или делать ссылку без замены. И еще лучше без перехода.
После перехода пишется на весь экран:
200 OK Request Succes
пользователю эта лишняя информация.

ссылкой только в firefox работает, яндекс браузер отметает лишнее…..

 

miketomlin

Может, метод должен быть POST.

 

shiyri

Copyright © D-Link, 2015
Команды URIпозволяют выполнять не только набор отдельных клавиш, но и выполнить набор номера целиком с помощью следующих команд:
http://<IPтелефона>/cgi-bin/ConfigManApp.com?key=F_HANDFREE;2;3;2;3;@1;ENTER
или
http://<IPтелефона>/cgi-bin/ConfigManApp.com?key=F_HANDFREE;2323@1;OK
где<IPтелефона>–это IPадрес устройства;
2323–набираемый номер;
@1–выбор линии SIP;
;-разделитель.
В связи с тем,что при посылке знака решётки “#” посредствам URI этот знак обрабатывается и не отправляется в запрос, при наборе номера целиком вместо него предусмотренно использовать знак “$”. Например, для набора номера 12#34необходимо в URI указывать 12$34
мне кажется это гет

 

miketomlin

Никак. Это противоречит протоколу. Собака вроде может не кодироваться.

GET-параметры могут быть и у POST. В любом случае точка с запятой в адресе должна кодироваться.

 

shiyri

а если это все таки будет ссылка, возможно ее сделать без перехода?
Или может какой-то обработчик отдельный сделать с возвратом на страницу.

 

miketomlin

AJAX

С возвратом откуда, из телефона? :)
— Добавлено —
Если телефон может устанавливать статус 3xx и возвращать Location, то пожалуйста :)

 

shiyri

посмотрел оч сложно с аякс, не могу понять…
я имел ввиду, что б обработчик на php сделал запро гет и вернулся на искомую страницу.

 

Drunkenmunky

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

 

shiyri

Задача сделать таблицу из MySQL, с фио, отделом, офисом, почтой и кликабельным номером телефона. Если сотрудник жмёт на ссылку/submit с номером телефона, то с его ip телефона происходит вызов этого абонента…все кроме ссылок работает. Хотелось бы кросплатформенные ссылки, и без перехода на 200 OK

 

Drunkenmunky

PHP:
  1. file_get_contents(‘http://admin:admin@192.168.0.161/cgi-bin/ConfigManApp.com?key=F_HANDFREE;000@1;OK’);
 

Максим Матвийчина

Это возможно реализовать, однако ссылки (URL адреса) не могут содержать таких символов как «@», «;».
Если Вы хотите, чтоб каждый пользователь имел уникальную ссылку, создайте в таблице MySQL еще одно поле KEY, с уникальными значениями типа «F_HANDFREE-2323—1-OK» (без запрещенных в URL симоволов).
Тогда Вы сможете создавать красивые ссылки типа «ConfigManApp.com?key=F_HANDFREE-2323—1-OK» и Ваш скрип сможет находить пользователя по его KEY.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *