|
|
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
Yabuti |
Ответить с цитатой | | |
|
Всем привет!
Мучаюсь уже второй день с такой проблемой - когда php-скрипту обработчику отправляются данные переменной с формы, содержащей значок & в строке, то он их разделяет как две разные переменные.
Переменная - строка для ввода УРЛа, может содержать или не содержать амперсанд, например, задаются такие строки:
http://site.com/
или
http://site.com/index.html
или
http://site.com/index.php?a=123&b=super
и т.д.
Обработчик:
<form action=1.php method=get>
<input type=text name=url>
<input type=submit>
</form>
<?php
echo $_GET['url'];
?>
Первые две строки, без амперсанда, воспримет нормально, а третью разделит по амперсанду в две переменные.
Подскажите, как можно решить эту проблему?
Заранее большое спасибо! |
|
|
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
exolon V.I.P. |
Зарегистрирован: 22.11.2007
Сообщений: 2397
|
Обратиться по нику
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21800
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
Конечно используй пост, он и безопасней будет, get больше для случаев, когда на линк заходишь сразу с браузера, без форм, т.е. напр domain.com/admin.php?login=111&pass=222
замени
<form action=1.php method=get>
на
<form action=1.php method=post>
Также,
<?php
echo $_GET['url'];
?>
замени на
<?php
echo $_POST['url'];
?> |
|
|
|
|
|
sex |
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
Yabuti |
Ответить с цитатой | | |
|
exolon, действительно, чего-то меня переклинило немного
POST-запросом:
<form action=2.php method=post>
<input type=text name=a style="width:550px;" value="http://ya.ru/index.php?id=789&subid=super"><br>
<input type=text name=b style="width:550px;" value="100"><br>
<input type=submit>
</form>
обработчик:
<?php
echo $_POST['a'];
echo "<br>".$_POST['b'];
?>
И все нормально. А GET-запросом никак, столько мучился.
Спасибо! |
|
|
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21800
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
Вообще, и через гет, браузер должен кодировать строку, а пхп на стороне хоста, его декодировать, знаки разделения гет переменных, не должны вроде как прерывать переменные. Может у тебя пхп какой то еще 4-ой версии. На современных версиях, никогда подобного не встречал, хотя то что такое явление может быть, совершенно возможно. |
|
|
|
|
|
sex |
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
Yabuti |
Ответить с цитатой | | |
|
IseeDeadPeople, спасибо!
Да я знаю как с GET и POST работать, просто писал API-скрипт для своего сервиса, хотел через GET сделать, так удобнее, когда одной строкой запрос, можно через file_get_contents получить результат, зациклился именно на GET-запросе.
Остается только POST |
|
|
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
JM Гуру |
Зарегистрирован: 25.08.2006
Сообщений: 1382
|
Обратиться по нику
|
JM |
Ответить с цитатой | | |
|
Бррр че ты морочишься объясни еще раз? Если гет и в запросе у тебя &, то тебе надо юрленкод юзать
http://php.net/manual/ru/function.urlencode.php
У поста минусы т.ч. локально хрен потестишь надо форму рисовать
Вот так гет пропиши и увидишь что браузер сам кодирует & в то что надо.
<form action=2.php method=get>
<input type=text name=a style="width:550px;" value="http://ya.ru/index.php?id=789&subid=super"><br>
<input type=text name=b style="width:550px;" value="100"><br>
<input type=submit>
</form> |
|
|
|
|
|
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам |
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
JM Гуру |
Зарегистрирован: 25.08.2006
Сообщений: 1382
|
Обратиться по нику
|
JM |
Ответить с цитатой | | |
|
Ничего подобного 2 переменные и есть...
2.php?a=http%3A%2F%2Fya.ru%2Findex.php%3Fid%3D789%26subid%3Dsuper&b=100
echo urlencode('http://ya.ru/index.php?id=789&subid=super');
сам посмотри что выдаст и это же выдаст браузер если ты в форму пропишешь get вместо post
В пост тебе тоже надо переменные загонять через urlencode ващето или ты в дампе увидишь что один хер их там ТРИ!!! |
|
|
|
|
|
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам |
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
JM Гуру |
Зарегистрирован: 25.08.2006
Сообщений: 1382
|
Обратиться по нику
|
|
|
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам |
Yabuti V.I.P. |
Зарегистрирован: 28.11.2008
Сообщений: 16263
|
Обратиться по нику
|
|
|
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
-- |
JM Гуру |
Зарегистрирован: 25.08.2006
Сообщений: 1382
|
Обратиться по нику
|
|
|
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам |
exolon V.I.P. |
Зарегистрирован: 22.11.2007
Сообщений: 2397
|
Обратиться по нику
|
exolon |
Ответить с цитатой | | |
|
Точно так. Если браузер сабмитит форму, то он сам делает urlencode.
Если дергаешь через file_get_contents , то надо вручную сделать urlencode. |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21800
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
Я про тоже, любой браузер должен сам гет запрос, query переменную заurlencoдить при передаче на хост.
Что то мне кажется, дело в браузере Яба, или же, какие то там настройки не те стоят. |
|
|
|
|
|
sex |
|