![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как преобразовать POST запрос в GET [D7, WinXP]
q1Onik © (2008-03-02 11:39:00)Здравствуйте.
Столкнулся со следующей проблемой: необходимо сформировать и преобразовать POST запрос в GET и отправить его на сервер. Слышал что php4 и более поздние версии поддерживают возможность обработки POST запросов, отправленных GET-ом.
Get запросы посылаю след. образом:
var Http:TIdHttp;
s:string;
..........................................
Plink:=send.php?sid=29130f66d777f182c3daf4b26ee96238;
..........................................
Http:=TIdHTTP.Create(IDHttp1);
Http.Host:=PAddr;
Http.Port:=80;
Http.Connect();
s:=Http.Get('/'+Plink);
Http.Disconnect;
.........................................
Скрипт и передаваемые ему переменные берутся из составленной предварительно карты сайта. Т.е. просто из тела html странички я выдирал все скрипты, ссылки на них брал из тегов <a href="скрипт и передаваемые в него переменные"></a>
Теперь же потребовалось еще взять и проверить все скрипты из тегов <form></form>
Вот пример:
<form method="post" action="login.php?sid=81f0ea24f354fa6372158507b9ced3f6">
<input class="post" type="text" name="username" size="10" />
<input class="post" type="password" name="password" size="10" maxlength="32" />
<input class="text" type="checkbox" name="autologin" />
<input type="submit" class="mainoption" name="login" value="Вход" />
</form>
Пропарсив все между тегами <form></form> я узнал о таком скрипте как login.php.
Вот суть моей проблемы:
1. Как выглядит POST запрос, отправляемый скрипту в данном примере.
2. Как мне отправить этот запрос к скрипту методам GET
SpellCaster (2008-03-12 12:44:00) [1]Отправь ПОСТ из браузера и поснифай SmSniffer-ом.
> Слышал что php4 и более поздние версии поддерживают возможность
> обработки POST запросов, отправленных GET-ом
Бред сивой кобылы. Имеется в виду, отправить переменные ПОСТ-запроса через ГЕТ? Так бессмысленно, если скрипт обрабатывает $_POST, там ничего не будет. Возможно, только если скрипт юзает $_REQUEST.
Reindeer Moss Eater (2008-03-04 12:57:00) [2]поиграйся с ограничителями строк при вставке в лист. (CRLF и т.д.)
или попробуй грузить пост параметры из файла используя стрим в качестве второго параметра post
q1Onik (2008-03-04 12:21:00) [3]Я не мастер сетевого программирования, поэтому на лету мне тяжело понять, что это меняет =(((
Если не трудно помогите куском кода, как запрос будет выглядеть в этом конкретном примере хДД
Reindeer Moss Eater (2008-03-04 11:38:00) [4]Помнится там была ошибка, связанная с разделителями полей при использовании TStrings.
q1Onik (2008-03-04 11:06:00) [5]procedure TForm1.Button1Click(Sender: TObject);
var
S: TStringList;
begin
memo1.Text:= IdHTTP1.Get('/login.php');
S:= TStringList.Create;
S.Add('name=admin');
S.Add('password=qazwsx');
memo1.Text:=IdHTTP1.Post('/login.php', S);
end;
Вот как я пытаюсь отправить пост запрос.
Но зайти с таким запросом не получается.
И в чем здесь ошибка, я толком понять не могу.
Подозреваю, что просто неправильно запрос составил.
Reindeer Moss Eater (2008-03-04 10:54:00) [6]http заголовок c url и полем content-length. За заголовком тело документа и имена полей.
примерно так.
q1Onik (2008-03-04 10:23:00) [7]Хотя бы как в таком случае будет выглядеть посылаемая на сервер строка POST запроса?
Reindeer Moss Eater (2008-03-02 16:50:00) [8]в ГЕТэто не влезет.