URI too long

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

URI too long

Непрочитанное сообщение kozak » 2008-08-26 10:23:12

Привет всем!

Есть страница с формой, посылающей 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
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: URI too long

Непрочитанное сообщение hizel » 2008-08-26 10:30:43

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

Непрочитанное сообщение kozak » 2008-08-27 17:15:19

Добавил в httpd.conf строчки

Код: Выделить всё

LimitRequestLine 81900
LimitRequestFieldSize 81900
однако... безрезультатно ((
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: URI too long

Непрочитанное сообщение krilya » 2008-08-28 2:12:40

VladB писал(а):Есть страница с формой, посылающей POST-запрос, и есть второй файл принимающий данные с этой формы GEТ запросом.
прошу прощения, но это бред

насчет длины урл: http://www.boutell.com/newfaq/misc/urllength.html

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: URI too long

Непрочитанное сообщение kozak » 2008-08-28 9:48:30

Что это бред, я уже понял, спасибо!

Хорошо, как передать данные (больше 8190 байт) из формы на одной странице в форму на другой странице!?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: URI too long

Непрочитанное сообщение krilya » 2008-08-28 10:01:40

в ссылке, которую я привел, достаточно подробно описана ваша проблема

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-28 10:08:04

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

Непрочитанное сообщение krilya » 2008-08-28 10:12:59

ну так и я о том же....
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>

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-28 10:19:32

krilya писал(а):ну так и я о том же....
несовсем, enctype="multipart/form-data" позволяет передавать разные поля формы как отдельные части POST-запроса. Этот метод используется для передачи бинарных данных большой длины без кодирования информации. По-умолчанию POST-запрос передаётся так же как и GET, то есть монолитно и c кодированием информации, поэтому он подходит только для передачи небольших данных.

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: URI too long

Непрочитанное сообщение krilya » 2008-08-28 10:26:02

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.
наверное для начала стоит все-такие определиться что передается :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-28 10:59:17

если форма обрабатывается php-скриптом, то самый лучший вариант будет именно multipart/form-data, остальные способы я бы не рекомендовал использовать, если не сильно уверен для чего они используются.

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: URI too long

Непрочитанное сообщение lerryc » 2008-08-28 14:24:58

мултипарт выгоден когда предусматривается передача файла с киентской машины.
в форме сменить метод Post на GET однозначно.
если обработка на пхп и нет передачи массивов - то в обработчике вообще ничего править не нужно (при правильных dev/hand)
если обработка в перловке, то придется подправить пару строк получения входных параметров.
машина думать не может, машина должна ехать

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-28 14:47:12

lerryc писал(а):мултипарт выгоден когда предусматривается передача файла с киентской машины.
хоть файл, хоть текст, хоть селект, любые большие формы обязательно нужно слать multipart/form-data и только POST.
lerryc писал(а):в форме сменить метод Post на GET однозначно.
зачем?
lerryc писал(а):если обработка на пхп и нет передачи массивов
гм... а массивы тут каким боком вылезли? массивы понятие php, а не URI

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: URI too long

Непрочитанное сообщение kozak » 2008-08-28 15:22:36

Фигня какая-то получается...

file1.php

Код: Выделить всё

<form  action="file2.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="Sec" id="Sec" value="TEST"/>
</form>
file2.php

Код: Выделить всё

<?=$_GET['Sec']?>
Глухо, но если $_GET['Sec'] поменять на $_POST['Sec'] выводит результат "TEST"


Братья, разъясните плиzzz...
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: URI too long

Непрочитанное сообщение krilya » 2008-08-28 15:42:41

Если вы в форме используете POST, то и брать данные должны в $_POST
аналогично, в форме GET, то и данные в $_GET

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-28 20:48:31

если не знаешь откуда брать данные, бери из $_REQUEST :bn:

lerryx
проходил мимо

Re: URI too long

Непрочитанное сообщение lerryx » 2008-08-29 9:00:08

в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах
обращаться сразу к переменной, если она получена из формы

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-29 9:08:55

lerryx писал(а):в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах
поясни? по-умолчанию в пхп не должно быть никаких переменных кроме $GLOBALS и $_... системных массивов.

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: URI too long

Непрочитанное сообщение lerryc » 2008-08-29 16:44:13

zg писал(а):
lerryx писал(а):в пхп не нужно ничего ниоткуда брать - всё и так уже на своих местах
поясни? по-умолчанию в пхп не должно быть никаких переменных кроме $GLOBALS и $_... системных массивов.
phpinfo() поможет узнать как всё обстоит на самом деле ;)
пхп нынче умнее , чем был ранее ...

выше мной была допущена опечатка - при больших объемах передаваемых данных нужно конечно же использовать 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");}
?>

вроде всё, что хотел сказать в свое оправдание
машина думать не может, машина должна ехать

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-29 18:09:24

http://zlobnygrif.fatal.ru/php-cli.cgi

Код: Выделить всё

#!/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 вне зависимости от метода передачи
каким образом можно загружать файлы по твоей версии?
lerryc писал(а):ПХП (после всех своих внутренних преобразований) получает связку аргумент = значение, которую так и трактует(например, x=2 и к ней можно обращаться по имени $x внутри скрипта)поскольку в массивах появляются квадратные скобки - то требуются некоторые дополнительные манипуляции при передаче по GET(детали можно увидеть в phpinfo())
странная точка зрения... на будущее - register_globals уберут в шестой версии пхп, поэтому "некоторые дополнительные манипуляции" :"": надо делать всегда везде и ещё проверять на инъекцию
lerryc писал(а):вроде всё, что хотел сказать в свое оправдание
незачёт :cf: кури мануал http://php.net :smile:

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: URI too long

Непрочитанное сообщение lerryc » 2008-08-30 4:02:44

я плохо пишу по-русски, еще хуже читаю....
поэтому немного не уловил твою мысль в твоем примере....
поэтому немного уточню свою....
(чё хотел сказать)
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"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
lerryc писал(а):обработчик на стороне сервера всегда получает связку arg=value вне зависимости от метода передачи
каким образом можно загружать файлы по твоей версии?
моя версия от твоей отличается тем, что использую сокет напрямую, а тебя этот этот кусок вшит в fopen().
поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.
как известно ПХП принимает их в темп_дир с темп_найме и возвращает в окружении кол-во принятых файлов и их имена...
далее - дело рук и полета фантазии...
если же следовать по "моей технологии" - то файлы принимаются в переменные и дальше их нужно разгребать ручками, т.е. по сути делать ту работу, что пхп делает в "стандартном полете"

Но мой пример немного неудачен с точки зрения топика ибо модуль на моем сервере инициирует связь с другим сервером и получает ответ (страницу и т.п.)

Однако если посмотреть tcpdump на клиентской машине в момент отправки броузером ответа из формы - то заголовки в передаче будут те же
вне зависимости от браузера и метода передачи (GET or POST)
Можно правда еще много чего интересного увидеть что браузеры передают втихомолку - но это не суть важно в нашем случае.
lerryc писал(а):ПХП (после всех своих внутренних преобразований) получает связку аргумент = значение, которую так и трактует(например, x=2 и к ней можно обращаться по имени $x внутри скрипта)поскольку в массивах появляются квадратные скобки - то требуются некоторые дополнительные манипуляции при передаче по GET(детали можно увидеть в phpinfo())
странная точка зрения... на будущее - register_globals уберут в шестой версии пхп, поэтому "некоторые дополнительные манипуляции" :"": надо делать всегда везде и ещё проверять на инъекцию
lerryc писал(а):вроде всё, что хотел сказать в свое оправдание
незачёт :cf: кури мануал http://php.net :smile:
ужастики про register_globals - пример в студию можно про инъекцию\взлом ?
когда-то давным давно вкралась эта рекомендация отключать глобал - так и тянется с незапамятных времен.
самый надежный способ уберечься от взлома - вынуть шнур питания из розетки....

касательно "типовых ошибок" в безопасности (безпечности - как говОрят наши украинские братки ;) )

в примере есть auth - т.е. признак того, что клиент прошел авторизацию и ему разрешен доступ закрытую зону.

она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами

1) в урл- строке
2) хайд в форме (POST)
3) в куке

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

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

но метод обеспечения безопасности и секюрити - это тема уже другого разговора.

а чтобы исключать регистер_глобалс - проще протокол интернета изменить ибо при существующем методе подмена данных всегда вероятна и не важно - пхп у тебя на сервере или что другое.

а еще в php.ini есть хороший опций - приоритет выбора значения для переменной (сессия\кука\инпут_окружение)

PS Лучшее лекарство от головной боли - гильотина :Yahoo!:
машина думать не может, машина должна ехать

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-30 7:18:25

lerryc писал(а):я плохо пишу по-русски, еще хуже читаю....поэтому немного не уловил твою мысль в твоем примере....
ладно, ещё раз выложу ссылку http://zlobnygrif.fatal.ru/php-cli.cgi
lerryc писал(а):ужастики про register_globals - пример в студию можно про инъекцию\взлом ?
сегодня постараюсь закончить сатью, выложу ссылку

UPD: статью худо-бедно закончил, вот тебе пример http://anton-pribora.ru/articles/php-co ... er-globals
lerryc писал(а):ЗАДАЧА: найти ДВА!!!! различия в передаче по GET & POST сами переменные передаются одинаково : x=1&y=2&z=3&auth=0 - о чем я и говорил ранее
да хоть десять сходи на http://zlobnygrif.fatal.ru/php-cli.cgi и потыкай кнопочки, а скрипт тебе покажет, чего ему передаётся и в каком виде.
lerryc писал(а):для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
вот сходи на http://zlobnygrif.fatal.ru/php-cli.cgi понабирай русские буквы и скажешь кого там надо кодировать и где
lerryc писал(а):моя версия от твоей отличается тем, что использую сокет напрямую, а тебя этот этот кусок вшит в fopen().
:shock: ты где этого бреда нахватался? там не кусок вшит, а используется апач, который парсит заголовки, а оставшееся передаёт скрипту через STDIN, при этом все важные данные попадают в $_SERVER.
lerryc писал(а):поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.
моя твоя понимай нет :no: тогда такой вопрос - а как по твоей теории принимает файлы php?
lerryc писал(а):она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
нет, ещё можно пнуть вебмастера напрямую.
Все важные переменные типа флага авторизации всегда должны храниться только на сервере, надёжнее всего в сессии.
Последний раз редактировалось zg 2008-08-30 9:58:04, всего редактировалось 1 раз.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: URI too long

Непрочитанное сообщение zg » 2008-08-30 7:28:59

lerryc писал(а):а еще в php.ini есть хороший опций - приоритет выбора значения для переменной (сессия\кука\инпут_окружение)
гм.. какой ты загадочный, если ты что-то говоришь пронастройки, то либо выкладвыай куски php.ini
php.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"
либо выкладывай ссылку на мануал, где описана это директива http://ru.php.net/manual/ru/ini.core.ph ... bles-order

Ну или хотя бы говори как она называется. Я это и так знаю, а вот другие могут что-то вынести для себя полезное, в этом и состоит суть форума.

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: URI too long

Непрочитанное сообщение lerryc » 2008-08-30 14:43:51

zg писал(а): либо выкладывай ссылку на мануал, где описана это директива http://ru.php.net/manual/ru/ini.core.ph ... bles-order

Ну или хотя бы говори как она называется. Я это и так знаю, а вот другие могут что-то вынести для себя полезное, в этом и состоит суть форума.
честно говоря - не вижу смысла
1) мы уклонились в "теоретический спор" и ушли от темы топика
2) автор давно решил свои проблемы и свалил уже нафиг
3) ссылки имеют значения когда они по сути главного вопроса (проблемы)
4) тратить свое время (которого и так не очень много) на поиск необходимых ссылок и примеров ради неизвестно чего - нафиг?
если есть проблема (у тебя или кого еще ) - я готов потратить энное количество минут на её решение, а если нет проблемы - нафиг?
тем более - мы ушли в офтопик
так и от модератора можно по ушам схлопотать ;)
5) если некто имеет проблемы из области что мы тут затронули, то наводящая подсказка позволит ему задуматься немного, погуглить и почитать факинг мануал в поисках решения проблемы. Не получится - спросит.
Помогать лентяю, который ленится полистать мануал - неблагодатное занятия да и пользы не будет - будет очередная соска, только и умеющая копи\пастэ
в общем такова моя позиция
по жизни
машина думать не может, машина должна ехать

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: URI too long

Непрочитанное сообщение lerryc » 2008-08-30 16:32:17

zg без обид и ничего личного...
но тут такая бредятина и ахинея написана (тобой) , что даже не знаю что и ответить...
и нужно ли отвечать...
мы полезли в дебри - но нужны ли они кому? тебе это нужно? есть результат?

ты послал меня RTFM php.net - но я стесняюсь спросить - а сам то дочитал до конца? с сокетами работал? протокол HTTP 1.x трогал?

я думаю - надо заканчивать флейм или делать другую ветку придумав соответствующее название

попробую ответить кратко, не вдаваясь в детали

zg писал(а):ладно, ещё раз выложу ссылку 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 и потыкай кнопочки, а скрипт тебе покажет, чего ему передаётся и в каком виде.
сходил
посмотрел
две цитаты с твоей ссылки
1)

Код: Выделить всё

Content-Type:  
Request URI: /php-cli.cgi?var1=asdsa&arr%5B%5D=addd 
Request method: GET 
2)

Код: Выделить всё

Content-Type: application/x-www-form-urlencoded 
Request URI: /php-cli.cgi 
Request method: POST 
var1=asdsa&arr%5B%5D=addd
var1=asdsa&arr%5B%5D=addd
получено на стороне сервера в обоих случаях.
РАЗНИЦА ГДЕ?????
ну потыкал кнопочки по твоей ссылке и не надо мне 10 - покажи РАЗНИЦУ в строке с переменными!!!!
позволю еще раз процитировать себя любимого - в обоих методах переменные передаются в одинаковом виде.
и своим примером (ссылкой) ты не доказал обратного!!!

lerryc писал(а):для русских буков $u["query"] надо еще кодировать - но это оставим за бортом ибо не по сути вопроса
вот сходи на http://zlobnygrif.fatal.ru/php-cli.cgi понабирай русские буквы и скажешь кого там надо кодировать и где

Код: Выделить всё

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().
:shock: ты где этого бреда нахватался? там не кусок вшит, а используется апач, который парсит заголовки, а оставшееся передаёт скрипту через STDIN, при этом все важные данные попадают в $_SERVER.
О,Господи!!!!
А апач какого бреда ты сюда притянул? АПАЧ ПРИ ЧЁМ?????
И нет у меня индейца!!!! И на 30% серверов в инете вовсе не апач шуршит!!!!
И что - ПХП перестает работать????
Вот это - действительно БРЕД!!!!
Задача АПАЧА (уж коли ты индейца затронул) - поднять ребенка (child proccess) и передать дыру (socket connection)
И апачу глубоко фиолетово какой там ребенок - пхп, перл или экзотик паскаль....
STDIN парсит ПХП (или другой какой обработчик - на то он и обработчик)

я скажу по секрету, что мануалить php.net я начал в те времена, когда PHP3 , был ещё кандидат релиз.
а поскольку с англицким у меня значительно хуже, чем с русским - то я еще промануалил и исходные коды (source) PHP
Мне очень бы хотелось послать тебя на .... (ссылка), но на 99% уверен что тебе это надо.
Но уж если очень захочется - тогда на известном тебе сайте найди Source Code - найди функцию fopen() посмотри какие
call'ы она выполняет и какие функции (подпрограммы) подтягивает.
lerryc писал(а):поэтому в моя-твоя примеры принимать файлы можно только одним методом - так как их принимает ПХП.
моя твоя понимай нет :no: тогда такой вопрос - а как по твоей теории принимает файлы php?
Чесс слово - своим вопросом ты поставил меня в тупик....
Не знаю даже что и ответить.....
Ты сам принял хоть один файл по мультипарт??? (картинку например в твоей пиарной ссылке и выведи эту картинку на этой же странице)
Если принимал - то вопрос о чём? Проблема в чём?
Как принимает? Если кратко - то fget(...) - fwrite (...)
Хочешь прочувствовать ньаюнсы - то попробуй положить не туда, куда кладет пхп (а например в зону своего веб-сервера) и назвать не так, как называет пхп, а походу еще и узнать что за файл (по типу) тебе подсунули...
Если ты это всё делал - то мне совсем непонятен твой вопрос.
Если тебя интересует - делал ли это я....
Ответ - делал...
И мне глубоко фиолетово что и как делает ПХП - у меня есть нужный мне результат
lerryc писал(а):она может быть передана клиенту и возвращена обратно, как известно, всего тремя методами
нет, ещё можно пнуть вебмастера напрямую.
Все важные переменные типа флага авторизации всегда должны храниться только на сервере, надёжнее всего в сессии.
[/quote]
Товарисч нэ поониимаэт.... ;)
1) Сессия - есть у ПХП
а на пёрле? на питоне? а на Си в конце концов... стесняюсь вас спросить....
2) А как ты свяжешь сессию с клиентом????? стесняюсь вас спросить....

Как известно, сервер отдал данные клиенту, оборвал концы и забыл про клиента?

Стесняюсь вас спросить - как опознать что клиент отвечает на вашу(нашу) форму???

PS Я потратил энное количество минут своей жизни на этот ответ - но ей Богу не знаю зачем.... ;(
Кому и зачем это надо ? Что нового я узнал и что получил? Кто узнал и получил?
Поверь, гораздо больше было бы пользы и ответы были бы более конструктивны если б ты привел исходный код своего обработчика а не пинался своей ссылкой....
ПХП прятать за cgi расширением - это круто конэшно, но..... и чё?
И ПХП ли там?
а мы тут биссер мечем....

PPS/ Мне не нужно ничего доказывать\показывать\пояснять...
Все что я хочу получить от ПХП - я знаю как и могу....
Чего не знаю - значит мне это не нужно....
машина думать не может, машина должна ехать