URI too long
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- kozak
- сержант
- Сообщения: 240
- Зарегистрирован: 2007-07-20 15:22:54
- Откуда: Запорізька Січ
URI too long
Привет всем!
Есть страница с формой, посылающей POST-запрос, и есть второй файл принимающий данные с этой формы GEТ запросом.
Все работало нормально пока не столкнулся с проблемой [Tue Aug 26 10:11:57 2008] [error] [client 10.10.10.10] request failed: URI too long (longer than 8190).
Как убрать установленный лимит?
Спасибо.
Есть страница с формой, посылающей POST-запрос, и есть второй файл принимающий данные с этой формы GEТ запросом.
Все работало нормально пока не столкнулся с проблемой [Tue Aug 26 10:11:57 2008] [error] [client 10.10.10.10] request failed: URI too long (longer than 8190).
Как убрать установленный лимит?
Спасибо.
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: URI too long
Internet Exploder limits a URL to 2048 bytes. That is a browser
limitation. On the server side, it varies and is configurable. The
default configuration for Apache 2.x is 8190 bytes. The default for
IIS 6.0 is 16K. I have seen log file entries with nearly 10K chars,
so there are people out there creating ridiculously long strings.
http://httpd.apache.org/docs/2.2/mod/co ... equestline
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- kozak
- сержант
- Сообщения: 240
- Зарегистрирован: 2007-07-20 15:22:54
- Откуда: Запорізька Січ
Re: URI too long
Добавил в httpd.conf строчки
однако... безрезультатно ((
Код: Выделить всё
LimitRequestLine 81900
LimitRequestFieldSize 81900
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.
- krilya
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2008-03-11 4:42:29
- Откуда: Комсомольск-на-Амуре
Re: URI too long
прошу прощения, но это бредVladB писал(а):Есть страница с формой, посылающей POST-запрос, и есть второй файл принимающий данные с этой формы GEТ запросом.
насчет длины урл: http://www.boutell.com/newfaq/misc/urllength.html
- kozak
- сержант
- Сообщения: 240
- Зарегистрирован: 2007-07-20 15:22:54
- Откуда: Запорізька Січ
Re: URI too long
Что это бред, я уже понял, спасибо!
Хорошо, как передать данные (больше 8190 байт) из формы на одной странице в форму на другой странице!?
Хорошо, как передать данные (больше 8190 байт) из формы на одной странице в форму на другой странице!?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.
- krilya
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2008-03-11 4:42:29
- Откуда: Комсомольск-на-Амуре
Re: URI too long
в ссылке, которую я привел, достаточно подробно описана ваша проблема
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
VladB писал(а):Хорошо, как передать данные (больше 8190 байт) из формы на одной странице в форму на другой странице!?
Код: Выделить всё
<form method="POST" enctype="multipart/form-data">
<input type="..." ...>
<textarea ... >
</form>
- krilya
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2008-03-11 4:42:29
- Откуда: Комсомольск-на-Амуре
Re: URI too long
ну так и я о том же....
http://www.boutell.com/newfaq/misc/urllength.html
http://www.boutell.com/newfaq/misc/urllength.html
When you wish to submit a form containing many fields, which would otherwise produce a very long URL, the standard solution is to use the POST method rather than the GET method:
<form action="myscript.php" method="POST">
...
</form>
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
несовсем, enctype="multipart/form-data" позволяет передавать разные поля формы как отдельные части POST-запроса. Этот метод используется для передачи бинарных данных большой длины без кодирования информации. По-умолчанию POST-запрос передаётся так же как и GET, то есть монолитно и c кодированием информации, поэтому он подходит только для передачи небольших данных.krilya писал(а):ну так и я о том же....
- krilya
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2008-03-11 4:42:29
- Откуда: Комсомольск-на-Амуре
Re: URI too long
http://www.w3.org/TR/html401/interact/f ... -17.13.4.2

наверное для начала стоит все-такие определиться что передаетсяThe content type "application/x-www-form-urlencoded" is inefficient for sending large quantities of binary data or text containing non-ASCII characters. The content type "multipart/form-data" should be used for submitting forms that contain files, non-ASCII data, and binary data.

-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
если форма обрабатывается php-скриптом, то самый лучший вариант будет именно multipart/form-data, остальные способы я бы не рекомендовал использовать, если не сильно уверен для чего они используются.
-
- сержант
- Сообщения: 191
- Зарегистрирован: 2008-07-10 7:28:37
- Откуда: Vladivostok
Re: URI too long
мултипарт выгоден когда предусматривается передача файла с киентской машины.
в форме сменить метод Post на GET однозначно.
если обработка на пхп и нет передачи массивов - то в обработчике вообще ничего править не нужно (при правильных dev/hand)
если обработка в перловке, то придется подправить пару строк получения входных параметров.
в форме сменить метод Post на GET однозначно.
если обработка на пхп и нет передачи массивов - то в обработчике вообще ничего править не нужно (при правильных dev/hand)
если обработка в перловке, то придется подправить пару строк получения входных параметров.
машина думать не может, машина должна ехать
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
хоть файл, хоть текст, хоть селект, любые большие формы обязательно нужно слать multipart/form-data и только POST.lerryc писал(а):мултипарт выгоден когда предусматривается передача файла с киентской машины.
зачем?lerryc писал(а):в форме сменить метод Post на GET однозначно.
гм... а массивы тут каким боком вылезли? массивы понятие php, а не URIlerryc писал(а):если обработка на пхп и нет передачи массивов
- kozak
- сержант
- Сообщения: 240
- Зарегистрирован: 2007-07-20 15:22:54
- Откуда: Запорізька Січ
Re: URI too long
Фигня какая-то получается...
file1.php
file2.php
Глухо, но если $_GET['Sec'] поменять на $_POST['Sec'] выводит результат "TEST"
Братья, разъясните плиzzz...
file1.php
Код: Выделить всё
<form action="file2.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="Sec" id="Sec" value="TEST"/>
</form>
Код: Выделить всё
<?=$_GET['Sec']?>
Братья, разъясните плиzzz...
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.
- krilya
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2008-03-11 4:42:29
- Откуда: Комсомольск-на-Амуре
Re: URI too long
Если вы в форме используете POST, то и брать данные должны в $_POST
аналогично, в форме GET, то и данные в $_GET
аналогично, в форме GET, то и данные в $_GET
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
если не знаешь откуда брать данные, бери из $_REQUEST 

-
- проходил мимо
Re: URI too long
в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах
обращаться сразу к переменной, если она получена из формы
обращаться сразу к переменной, если она получена из формы
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
поясни? по-умолчанию в пхп не должно быть никаких переменных кроме $GLOBALS и $_... системных массивов.lerryx писал(а):в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах
-
- сержант
- Сообщения: 191
- Зарегистрирован: 2008-07-10 7:28:37
- Откуда: Vladivostok
Re: URI too long
phpinfo() поможет узнать как всё обстоит на самом делеzg писал(а):поясни? по-умолчанию в пхп не должно быть никаких переменных кроме $GLOBALS и $_... системных массивов.lerryx писал(а):в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах

пхп нынче умнее , чем был ранее ...
выше мной была допущена опечатка - при больших объемах передаваемых данных нужно конечно же использовать POST вместо GET
и немного воды и всем известных прописных истин....
всё нижесказанное из личного опыта и проверено в боях с иноземными серверами
конечно же, лучший метод - реад факинг мануал RFC HTTP request, но читать мы не любим и легких путей не ищем....
поэтому переведу на рабоче-крестьянский (перевод вольный и не всегда соответствует RFC)
итак.... про шишки....
к серверу (любому) можно обратиться только с двумя запросами (если учитывать топик и не брать во внимание другие возможности)
GET or POST
принципиальная разница в этих методах заключается в том, что данные, передаваемые в программу-обработчик на сервере, пересылаются серверу либо в поле служебных команд, либо дополнительным блоком после служебных команд.
одна строка - одна команда
структура: заголовок + содержание + \r\n (или \n)
как известно, в первом случае запрос имеет вид (1-я строка\команда)
GET reguest_uri HTTP/1.0 \r\n
где request_uri путь до страницы(файла) + данные (из форм и прочих мест)
проверено: длина любая и определяется по концу строки (\r\n)
допустимые символы от chr(32) до chr(127)
как известно, по запросу POST данные передаются после блока команд (\r\n\r\n), могут быть любыми (chr(0-255)), длина (размер блока) передан ранее серверу в поле команд.
как известно, данные в обоих случаях передаются в одинаковом виде: arg=value
(мультипарт и бинарные файлы не берем во внимание)
Что из этого следует?
1) обработчик на стороне сервера всегда получает связку arg=value вне зависимости от метода передачи
2) длина данных по GET всегда больше чем по POST за счет (де)кодирования символов, выходящих за допустимый предел
(+ 3 байта на каждый "запретный" символ если не изменяет память)
3) массивы передаются в виде arg[key]=value поэлементо и только те, что определены
4) хотя лимит длины строки по методу GET не определен ( а иногда и сложно предсказуем\вычисляем) - нет гарантии того, что "в дороге"
на каком-либо шлюзе не будет обрезан из-за подозрений в дос-атаке или х.з. каких других соображений.
(на практике передавались неразумно длинные строки, проблем не возникло, но гарантии - нет)
Что из этого следует?
ПХП (после всех своих внутренних преобразований) получает связку аргумент = значение, которую так и трактует
(например, x=2 и к ней можно обращаться по имени $x внутри скрипта)
поскольку в массивах появляются квадратные скобки - то требуются некоторые дополнительные манипуляции при передаче по GET
(детали можно увидеть в phpinfo())
Как с этим работать? (в форме-обработчике на сервере)
Код: Выделить всё
<?
if ( isset ($myvalue))
{Header("Location:next_page.php?myvalue=$myvalue");}
else
{Header("Location:prev_page.php?err=1");}
?>
машина думать не может, машина должна ехать
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
http://zlobnygrif.fatal.ru/php-cli.cgi
данные передаются в зависимости от формы
надо делать всегда везде и ещё проверять на инъекцию
кури мануал http://php.net 
Код: Выделить всё
#!/usr/local/bin/php
Content-Type: text/html
<pre>Content-Type: <?=hEscape($_SERVER['CONTENT_TYPE'])?>
Request URI: <?=hEscape($_SERVER['REQUEST_URI'])?>
Request method: <?=$_SERVER['REQUEST_METHOD']?>
<?php while ( !feof(STDIN) ) echo hEscape(fread(STDIN, 1024)); ?></pre>
<hr />
<p>GET-form
<form method="GET">
<input type="text" name="var1" value="asdsa" />
<input type="text" name="arr[]" value="addd" />
<input type="submit" value="Send get form" />
</form>
</p>
<hr />
<p>POST-form
<form method="POST" action="?">
<input type="text" name="var1" value="asdsa" />
<input type="text" name="arr[]" value="addd" />
<input type="submit" value="Send post form" />
</form>
</p>
<hr />
<p>POST-form multipart/form-data
<form method="POST" action="?" enctype="multipart/form-data">
<input type="text" name="var1" value="asdsa" />
<input type="text" name="arr[]" value="addd" />
<input type="submit" value="Send post/multipart form" />
</form>
</p>
<?php
/**
* Экранирование html опасных символов
*
* @param string $html
* @return string
*/
function hEscape( $html )
{
return htmlspecialchars($html, ENT_COMPAT, 'cp1251');
}
?>
никак не известноlerryc писал(а):как известно, данные в обоих случаях передаются в одинаковом виде: arg=value

каким образом можно загружать файлы по твоей версии?lerryc писал(а):обработчик на стороне сервера всегда получает связку arg=value вне зависимости от метода передачи
странная точка зрения... на будущее - register_globals уберут в шестой версии пхп, поэтому "некоторые дополнительные манипуляции"lerryc писал(а):ПХП (после всех своих внутренних преобразований) получает связку аргумент = значение, которую так и трактует(например, x=2 и к ней можно обращаться по имени $x внутри скрипта)поскольку в массивах появляются квадратные скобки - то требуются некоторые дополнительные манипуляции при передаче по GET(детали можно увидеть в phpinfo())

незачётlerryc писал(а):вроде всё, что хотел сказать в свое оправдание


-
- сержант
- Сообщения: 191
- Зарегистрирован: 2008-07-10 7:28:37
- Откуда: Vladivostok
Re: URI too long
я плохо пишу по-русски, еще хуже читаю....
поэтому немного не уловил твою мысль в твоем примере....
поэтому немного уточню свою....
(чё хотел сказать)
задача = передать переменные x,y.z и auth
заголовки сведены до минимума чтоб суть не загромождать.
ЗАДАЧА: найти ДВА!!!! различия в передаче по GET & POST
сами переменные передаются одинаково : x=1&y=2&z=3&auth=0 - о чем я и говорил ранее
для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.
как известно ПХП принимает их в темп_дир с темп_найме и возвращает в окружении кол-во принятых файлов и их имена...
далее - дело рук и полета фантазии...
если же следовать по "моей технологии" - то файлы принимаются в переменные и дальше их нужно разгребать ручками, т.е. по сути делать ту работу, что пхп делает в "стандартном полете"
Но мой пример немного неудачен с точки зрения топика ибо модуль на моем сервере инициирует связь с другим сервером и получает ответ (страницу и т.п.)
Однако если посмотреть tcpdump на клиентской машине в момент отправки броузером ответа из формы - то заголовки в передаче будут те же
вне зависимости от браузера и метода передачи (GET or POST)
Можно правда еще много чего интересного увидеть что браузеры передают втихомолку - но это не суть важно в нашем случае.
когда-то давным давно вкралась эта рекомендация отключать глобал - так и тянется с незапамятных времен.
самый надежный способ уберечься от взлома - вынуть шнур питания из розетки....
касательно "типовых ошибок" в безопасности (безпечности - как говОрят наши украинские братки
)
в примере есть auth - т.е. признак того, что клиент прошел авторизацию и ему разрешен доступ закрытую зону.
она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
1) в урл- строке
2) хайд в форме (POST)
3) в куке
порядок указан в порядке повышения сложности как найти "концы" для взлома, а из-за своей кричащей привлекательности эта переменная будет вызывать пристальный интерес у хацкера.
и я передавал эту переменную в этих местах одновременно - ибо мне нужна надежность опознания клиента вне зависимости от того какой браузер и какие у него локальные настройки.
но метод обеспечения безопасности и секюрити - это тема уже другого разговора.
а чтобы исключать регистер_глобалс - проще протокол интернета изменить ибо при существующем методе подмена данных всегда вероятна и не важно - пхп у тебя на сервере или что другое.
а еще в php.ini есть хороший опций - приоритет выбора значения для переменной (сессия\кука\инпут_окружение)
PS Лучшее лекарство от головной боли - гильотина
поэтому немного не уловил твою мысль в твоем примере....
поэтому немного уточню свою....
(чё хотел сказать)
возьмем для примера примерzg писал(а):никак не известноlerryc писал(а):как известно, данные в обоих случаях передаются в одинаковом виде: arg=valueданные передаются в зависимости от формы
задача = передать переменные x,y.z и auth
Код: Выделить всё
$html="";
$url1="http://www.adion.ru/test.php?x=1&y=2&z=3&auth=0";
$url2="http://www.adion.ru/test.php?x=1";
$POSTDATA="y=2&z=3&auth=0";
$LPOST = strlen($POSTDATA);
//******* GET
$u=@parse_url($url1);
$host=$u["host"];
$port="80";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (isset($u["path"])) $request_uri=$u["path"]; else $request_uri="/";
if (isset($u["query"])) $request_uri.="?".$u["query"];
$out = "GET ".$request_uri." HTTP/1.0\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out); while (!feof($fp)) {$html.=fread($fp, 1024);} fclose($fp);
//***** POST
$u=@parse_url($url2);
$host=$u["host"];
$port="80";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (isset($u["path"])) $request_uri=$u["path"]; else $request_uri="/";
if (isset($u["query"])) $request_uri.="?".$u["query"];
$out = "POST ".$request_uri." HTTP/1.0\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Content-Length: ".$LPOST."\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $POSTDATA;
fwrite($fp, $out); while (!feof($fp)) {$html.=fread($fp, 1024);} fclose($fp);
ЗАДАЧА: найти ДВА!!!! различия в передаче по GET & POST

сами переменные передаются одинаково : x=1&y=2&z=3&auth=0 - о чем я и говорил ранее
для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
моя версия от твоей отличается тем, что использую сокет напрямую, а тебя этот этот кусок вшит в fopen().каким образом можно загружать файлы по твоей версии?lerryc писал(а):обработчик на стороне сервера всегда получает связку arg=value вне зависимости от метода передачи
поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.
как известно ПХП принимает их в темп_дир с темп_найме и возвращает в окружении кол-во принятых файлов и их имена...
далее - дело рук и полета фантазии...
если же следовать по "моей технологии" - то файлы принимаются в переменные и дальше их нужно разгребать ручками, т.е. по сути делать ту работу, что пхп делает в "стандартном полете"
Но мой пример немного неудачен с точки зрения топика ибо модуль на моем сервере инициирует связь с другим сервером и получает ответ (страницу и т.п.)
Однако если посмотреть tcpdump на клиентской машине в момент отправки броузером ответа из формы - то заголовки в передаче будут те же
вне зависимости от браузера и метода передачи (GET or POST)
Можно правда еще много чего интересного увидеть что браузеры передают втихомолку - но это не суть важно в нашем случае.
ужастики про register_globals - пример в студию можно про инъекцию\взлом ?странная точка зрения... на будущее - register_globals уберут в шестой версии пхп, поэтому "некоторые дополнительные манипуляции"lerryc писал(а):ПХП (после всех своих внутренних преобразований) получает связку аргумент = значение, которую так и трактует(например, x=2 и к ней можно обращаться по имени $x внутри скрипта)поскольку в массивах появляются квадратные скобки - то требуются некоторые дополнительные манипуляции при передаче по GET(детали можно увидеть в phpinfo())надо делать всегда везде и ещё проверять на инъекцию
незачётlerryc писал(а):вроде всё, что хотел сказать в свое оправданиекури мануал http://php.net
когда-то давным давно вкралась эта рекомендация отключать глобал - так и тянется с незапамятных времен.
самый надежный способ уберечься от взлома - вынуть шнур питания из розетки....
касательно "типовых ошибок" в безопасности (безпечности - как говОрят наши украинские братки

в примере есть auth - т.е. признак того, что клиент прошел авторизацию и ему разрешен доступ закрытую зону.
она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
1) в урл- строке
2) хайд в форме (POST)
3) в куке
порядок указан в порядке повышения сложности как найти "концы" для взлома, а из-за своей кричащей привлекательности эта переменная будет вызывать пристальный интерес у хацкера.
и я передавал эту переменную в этих местах одновременно - ибо мне нужна надежность опознания клиента вне зависимости от того какой браузер и какие у него локальные настройки.
но метод обеспечения безопасности и секюрити - это тема уже другого разговора.
а чтобы исключать регистер_глобалс - проще протокол интернета изменить ибо при существующем методе подмена данных всегда вероятна и не важно - пхп у тебя на сервере или что другое.
а еще в php.ini есть хороший опций - приоритет выбора значения для переменной (сессия\кука\инпут_окружение)
PS Лучшее лекарство от головной боли - гильотина

машина думать не может, машина должна ехать
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
ладно, ещё раз выложу ссылку http://zlobnygrif.fatal.ru/php-cli.cgilerryc писал(а):я плохо пишу по-русски, еще хуже читаю....поэтому немного не уловил твою мысль в твоем примере....
сегодня постараюсь закончить сатью, выложу ссылкуlerryc писал(а):ужастики про register_globals - пример в студию можно про инъекцию\взлом ?
UPD: статью худо-бедно закончил, вот тебе пример http://anton-pribora.ru/articles/php-co ... er-globals
да хоть десять сходи на http://zlobnygrif.fatal.ru/php-cli.cgi и потыкай кнопочки, а скрипт тебе покажет, чего ему передаётся и в каком виде.lerryc писал(а):ЗАДАЧА: найти ДВА!!!! различия в передаче по GET & POST сами переменные передаются одинаково : x=1&y=2&z=3&auth=0 - о чем я и говорил ранее
вот сходи на http://zlobnygrif.fatal.ru/php-cli.cgi понабирай русские буквы и скажешь кого там надо кодировать и гдеlerryc писал(а):для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
lerryc писал(а):моя версия от твоей отличается тем, что использую сокет напрямую, а тебя этот этот кусок вшит в fopen().

моя твоя понимай нетlerryc писал(а):поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.

нет, ещё можно пнуть вебмастера напрямую.lerryc писал(а):она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
Все важные переменные типа флага авторизации всегда должны храниться только на сервере, надёжнее всего в сессии.
Последний раз редактировалось zg 2008-08-30 9:58:04, всего редактировалось 1 раз.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: URI too long
гм.. какой ты загадочный, если ты что-то говоришь пронастройки, то либо выкладвыай куски php.inilerryc писал(а):а еще в php.ini есть хороший опций - приоритет выбора значения для переменной (сессия\кука\инпут_окружение)
либо выкладывай ссылку на мануал, где описана это директива http://ru.php.net/manual/ru/ini.core.ph ... bles-orderphp.ini писал(а):; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
variables_order = "EGPCS"
Ну или хотя бы говори как она называется. Я это и так знаю, а вот другие могут что-то вынести для себя полезное, в этом и состоит суть форума.
-
- сержант
- Сообщения: 191
- Зарегистрирован: 2008-07-10 7:28:37
- Откуда: Vladivostok
Re: URI too long
честно говоря - не вижу смыслаzg писал(а): либо выкладывай ссылку на мануал, где описана это директива http://ru.php.net/manual/ru/ini.core.ph ... bles-order
Ну или хотя бы говори как она называется. Я это и так знаю, а вот другие могут что-то вынести для себя полезное, в этом и состоит суть форума.
1) мы уклонились в "теоретический спор" и ушли от темы топика
2) автор давно решил свои проблемы и свалил уже нафиг
3) ссылки имеют значения когда они по сути главного вопроса (проблемы)
4) тратить свое время (которого и так не очень много) на поиск необходимых ссылок и примеров ради неизвестно чего - нафиг?
если есть проблема (у тебя или кого еще ) - я готов потратить энное количество минут на её решение, а если нет проблемы - нафиг?
тем более - мы ушли в офтопик
так и от модератора можно по ушам схлопотать

5) если некто имеет проблемы из области что мы тут затронули, то наводящая подсказка позволит ему задуматься немного, погуглить и почитать факинг мануал в поисках решения проблемы. Не получится - спросит.
Помогать лентяю, который ленится полистать мануал - неблагодатное занятия да и пользы не будет - будет очередная соска, только и умеющая копи\пастэ
в общем такова моя позиция
по жизни
машина думать не может, машина должна ехать
-
- сержант
- Сообщения: 191
- Зарегистрирован: 2008-07-10 7:28:37
- Откуда: Vladivostok
Re: URI too long
zg без обид и ничего личного...
но тут такая бредятина и ахинея написана (тобой) , что даже не знаю что и ответить...
и нужно ли отвечать...
мы полезли в дебри - но нужны ли они кому? тебе это нужно? есть результат?
ты послал меня RTFM php.net - но я стесняюсь спросить - а сам то дочитал до конца? с сокетами работал? протокол HTTP 1.x трогал?
я думаю - надо заканчивать флейм или делать другую ветку придумав соответствующее название
попробую ответить кратко, не вдаваясь в детали
посмотрел
две цитаты с твоей ссылки
1)
2)
var1=asdsa&arr%5B%5D=addd
получено на стороне сервера в обоих случаях.
РАЗНИЦА ГДЕ?????
ну потыкал кнопочки по твоей ссылке и не надо мне 10 - покажи РАЗНИЦУ в строке с переменными!!!!
позволю еще раз процитировать себя любимого - в обоих методах переменные передаются в одинаковом виде.
и своим примером (ссылкой) ты не доказал обратного!!!
а это что??? - стесняюсь вас спросить (после набора русских буков)
%E0%EF%F0%EE%E2%E0%EF - это что???
А апач какого бреда ты сюда притянул? АПАЧ ПРИ ЧЁМ?????
И нет у меня индейца!!!! И на 30% серверов в инете вовсе не апач шуршит!!!!
И что - ПХП перестает работать????
Вот это - действительно БРЕД!!!!
Задача АПАЧА (уж коли ты индейца затронул) - поднять ребенка (child proccess) и передать дыру (socket connection)
И апачу глубоко фиолетово какой там ребенок - пхп, перл или экзотик паскаль....
STDIN парсит ПХП (или другой какой обработчик - на то он и обработчик)
я скажу по секрету, что мануалить php.net я начал в те времена, когда PHP3 , был ещё кандидат релиз.
а поскольку с англицким у меня значительно хуже, чем с русским - то я еще промануалил и исходные коды (source) PHP
Мне очень бы хотелось послать тебя на .... (ссылка), но на 99% уверен что тебе это надо.
Но уж если очень захочется - тогда на известном тебе сайте найди Source Code - найди функцию fopen() посмотри какие
call'ы она выполняет и какие функции (подпрограммы) подтягивает.
Не знаю даже что и ответить.....
Ты сам принял хоть один файл по мультипарт??? (картинку например в твоей пиарной ссылке и выведи эту картинку на этой же странице)
Если принимал - то вопрос о чём? Проблема в чём?
Как принимает? Если кратко - то fget(...) - fwrite (...)
Хочешь прочувствовать ньаюнсы - то попробуй положить не туда, куда кладет пхп (а например в зону своего веб-сервера) и назвать не так, как называет пхп, а походу еще и узнать что за файл (по типу) тебе подсунули...
Если ты это всё делал - то мне совсем непонятен твой вопрос.
Если тебя интересует - делал ли это я....
Ответ - делал...
И мне глубоко фиолетово что и как делает ПХП - у меня есть нужный мне результат
Товарисч нэ поониимаэт....
1) Сессия - есть у ПХП
а на пёрле? на питоне? а на Си в конце концов... стесняюсь вас спросить....
2) А как ты свяжешь сессию с клиентом????? стесняюсь вас спросить....
Как известно, сервер отдал данные клиенту, оборвал концы и забыл про клиента?
Стесняюсь вас спросить - как опознать что клиент отвечает на вашу(нашу) форму???
PS Я потратил энное количество минут своей жизни на этот ответ - но ей Богу не знаю зачем.... ;(
Кому и зачем это надо ? Что нового я узнал и что получил? Кто узнал и получил?
Поверь, гораздо больше было бы пользы и ответы были бы более конструктивны если б ты привел исходный код своего обработчика а не пинался своей ссылкой....
ПХП прятать за cgi расширением - это круто конэшно, но..... и чё?
И ПХП ли там?
а мы тут биссер мечем....
PPS/ Мне не нужно ничего доказывать\показывать\пояснять...
Все что я хочу получить от ПХП - я знаю как и могу....
Чего не знаю - значит мне это не нужно....
но тут такая бредятина и ахинея написана (тобой) , что даже не знаю что и ответить...
и нужно ли отвечать...
мы полезли в дебри - но нужны ли они кому? тебе это нужно? есть результат?
ты послал меня RTFM php.net - но я стесняюсь спросить - а сам то дочитал до конца? с сокетами работал? протокол HTTP 1.x трогал?
я думаю - надо заканчивать флейм или делать другую ветку придумав соответствующее название
попробую ответить кратко, не вдаваясь в детали
зачем? что хочешь узнать\показать\доказать? но еще вернусь к этомуzg писал(а):ладно, ещё раз выложу ссылку http://zlobnygrif.fatal.ru/php-cli.cgi
бум ждатьу сегодня постараюсь закончить сатью, выложу ссылку
сходилда хоть десять сходи на http://zlobnygrif.fatal.ru/php-cli.cgi и потыкай кнопочки, а скрипт тебе покажет, чего ему передаётся и в каком виде.lerryc писал(а):ЗАДАЧА: найти ДВА!!!! различия в передаче по GET & POST сами переменные передаются одинаково : x=1&y=2&z=3&auth=0 - о чем я и говорил ранее
посмотрел
две цитаты с твоей ссылки
1)
Код: Выделить всё
Content-Type:
Request URI: /php-cli.cgi?var1=asdsa&arr%5B%5D=addd
Request method: GET
Код: Выделить всё
Content-Type: application/x-www-form-urlencoded
Request URI: /php-cli.cgi
Request method: POST
var1=asdsa&arr%5B%5D=addd
получено на стороне сервера в обоих случаях.
РАЗНИЦА ГДЕ?????
ну потыкал кнопочки по твоей ссылке и не надо мне 10 - покажи РАЗНИЦУ в строке с переменными!!!!
позволю еще раз процитировать себя любимого - в обоих методах переменные передаются в одинаковом виде.
и своим примером (ссылкой) ты не доказал обратного!!!
вот сходи на http://zlobnygrif.fatal.ru/php-cli.cgi понабирай русские буквы и скажешь кого там надо кодировать и гдеlerryc писал(а):для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
Код: Выделить всё
Content-Type:
Request URI: /php-cli.cgi?var1=%E0%EF%F0%EE%E2%E0%EF&arr%5B%5D=addd
Request method: GET
%E0%EF%F0%EE%E2%E0%EF - это что???
О,Господи!!!!lerryc писал(а):моя версия от твоей отличается тем, что использую сокет напрямую, а тебя этот этот кусок вшит в fopen().ты где этого бреда нахватался? там не кусок вшит, а используется апач, который парсит заголовки, а оставшееся передаёт скрипту через STDIN, при этом все важные данные попадают в $_SERVER.
А апач какого бреда ты сюда притянул? АПАЧ ПРИ ЧЁМ?????
И нет у меня индейца!!!! И на 30% серверов в инете вовсе не апач шуршит!!!!
И что - ПХП перестает работать????
Вот это - действительно БРЕД!!!!
Задача АПАЧА (уж коли ты индейца затронул) - поднять ребенка (child proccess) и передать дыру (socket connection)
И апачу глубоко фиолетово какой там ребенок - пхп, перл или экзотик паскаль....
STDIN парсит ПХП (или другой какой обработчик - на то он и обработчик)
я скажу по секрету, что мануалить php.net я начал в те времена, когда PHP3 , был ещё кандидат релиз.
а поскольку с англицким у меня значительно хуже, чем с русским - то я еще промануалил и исходные коды (source) PHP
Мне очень бы хотелось послать тебя на .... (ссылка), но на 99% уверен что тебе это надо.
Но уж если очень захочется - тогда на известном тебе сайте найди Source Code - найди функцию fopen() посмотри какие
call'ы она выполняет и какие функции (подпрограммы) подтягивает.
Чесс слово - своим вопросом ты поставил меня в тупик....моя твоя понимай нетlerryc писал(а):поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.тогда такой вопрос - а как по твоей теории принимает файлы php?
Не знаю даже что и ответить.....
Ты сам принял хоть один файл по мультипарт??? (картинку например в твоей пиарной ссылке и выведи эту картинку на этой же странице)
Если принимал - то вопрос о чём? Проблема в чём?
Как принимает? Если кратко - то fget(...) - fwrite (...)
Хочешь прочувствовать ньаюнсы - то попробуй положить не туда, куда кладет пхп (а например в зону своего веб-сервера) и назвать не так, как называет пхп, а походу еще и узнать что за файл (по типу) тебе подсунули...
Если ты это всё делал - то мне совсем непонятен твой вопрос.
Если тебя интересует - делал ли это я....
Ответ - делал...
И мне глубоко фиолетово что и как делает ПХП - у меня есть нужный мне результат
[/quote]нет, ещё можно пнуть вебмастера напрямую.lerryc писал(а):она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
Все важные переменные типа флага авторизации всегда должны храниться только на сервере, надёжнее всего в сессии.
Товарисч нэ поониимаэт....

1) Сессия - есть у ПХП
а на пёрле? на питоне? а на Си в конце концов... стесняюсь вас спросить....
2) А как ты свяжешь сессию с клиентом????? стесняюсь вас спросить....
Как известно, сервер отдал данные клиенту, оборвал концы и забыл про клиента?
Стесняюсь вас спросить - как опознать что клиент отвечает на вашу(нашу) форму???
PS Я потратил энное количество минут своей жизни на этот ответ - но ей Богу не знаю зачем.... ;(
Кому и зачем это надо ? Что нового я узнал и что получил? Кто узнал и получил?
Поверь, гораздо больше было бы пользы и ответы были бы более конструктивны если б ты привел исходный код своего обработчика а не пинался своей ссылкой....
ПХП прятать за cgi расширением - это круто конэшно, но..... и чё?
И ПХП ли там?
а мы тут биссер мечем....
PPS/ Мне не нужно ничего доказывать\показывать\пояснять...
Все что я хочу получить от ПХП - я знаю как и могу....
Чего не знаю - значит мне это не нужно....
машина думать не может, машина должна ехать