Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача параметров Cgi-скрипту...

12K
23 декабря 2005 года
AnD1
9 / / 23.12.2005
Привет всем!
Подскажите как отправить параметры скрипту, находящемуся на севере (напр., http://some_site.ru/script.cgi). Вот как это сделано в HTML:

<html><head>
<title>скрипт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</td>
<td class="apptextPlain" valign="top">

<form action="http://some_site.ru/script.cgi" method="post" name="Send_Message">

<table>
<tbody>
<tr>
<td><div align="center">Номер: <select name="Prefix"><option value="7904">123</option><option value="123">456</option><option value="789">456</option></select><input size="14" maxlength="7" name="phone" type="text"></div></td>
</tr>
<tr>
<td>Текст:

<textarea name="message" rows="5" cols="40">
</textarea>


</td> </tr>
<tr>
<td colspan="2" class="table1"><div align="center"><input value="''Послать''" type="submit"><input value="Очистить" type="reset"></td>
</tr>
</tbody>
</table>
</form>

</body></html>


(я в html не очень силён..., поэтому выкладываю полностью всю страничку...)
Т.е. как сделать в программе чтобы она аналогичным образом передавала параметры скрипту? Может есть специальный компонент/модуль? Или может самому генерить html-документ и заполнять в нём все формы, а потом уже из сгенереного документа передавать скрипту (только как?)
Пишу в Delphi 7.
Всем спаибо за ответы!
8.3K
23 декабря 2005 года
banshee
40 / / 25.11.2005
Привет, посмотри вот здесь

http://pascal.sources.ru/delphi/internet/cgi1.htm
8
24 декабря 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by AnD1
Т.е. как сделать в программе чтобы она аналогичным образом передавала параметры скрипту? Может есть специальный компонент/модуль? Или может самому генерить html-документ и заполнять в нём все формы, а потом уже из сгенереного документа передавать скрипту (только как?)


Там написано куда и каким методом передавать: http://some_site.ru/script.cgi method=Post
Именно так и следует сделать.
В D7 для этого удобно использовать Indy. В частности можно попробовать воспользоваться TIdHTTP.

12K
24 декабря 2005 года
AnD1
9 / / 23.12.2005
Цитата:
Originally posted by mfender
Там написано куда и каким методом передавать: http://some_site.ru/script.cgi method=Post
Именно так и следует сделать.
В D7 для этого удобно использовать Indy. В частности можно попробовать воспользоваться TIdHTTP.



Мне уже говорили про этот компонент.
Только какие в нём свойства нужно использовать.
Передача , кажется идет через idHttp.Post (...) только какие параметры и всё остальное нужно писать???
Если не сложно, то приведите, пожалуйста, кусок кода (для моего случая... или что-нибудь подобное...)

8
24 декабря 2005 года
mfender
3.5K / / 15.06.2005
Ну, примерно так. Специально набросал простенький примерчик.

Это форма:
object Form1: TForm1
Left = 242
Top = 333
Width = 870
Height = 640
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Memo1: TMemo
Left = 144
Top = 40
Width = 377
Height = 289
ScrollBars = ssVertical
TabOrder = 0
end
object Button1: TButton
Left = 640
Top = 200
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
object Edit1: TEdit
Left = 544
Top = 64
Width = 281
Height = 21
TabOrder = 2
end
object Memo2: TMemo
Left = 544
Top = 96
Width = 281
Height = 89
Lines.Strings = (
'Memo2')
ScrollBars = ssVertical
TabOrder = 3
end
object ih: TIdHTTP
MaxLineAction = maException
ReadTimeout = 0
AllowCookies = True
ProxyParams.BasicAuthentication = False
ProxyParams.ProxyPort = 0
Request.ContentLength = -1
Request.ContentRangeEnd = 0
Request.ContentRangeStart = 0
Request.ContentType = 'text/html'
Request.Accept = 'text/html, */*'
Request.BasicAuthentication = False
Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
HTTPOptions = [hoForceEncodeParams]
Left = 64
Top = 48
end
end

Это то, что внутри юнита:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
ih: TIdHTTP;
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
end;

var
Form1: TForm1;
URL: String = 'адрес_скрипта';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var FormData: TStringList;
begin
FormData := TStringList.Create;
FormData.Add(Edit1.Name + '=' + Edit1.Text);
FormData.Add(Memo2.Name + '=' + Memo2.Text);
Memo1.Text := ih.Post(URL, FormData);
end;

end.

На другом краю, напиши функцию, которая примет переданные данные. Если на PHP, то просто print_r($_POST); В Memo1.Text будет результат работы скрипта после отправки внего данных этой формы..
12K
24 декабря 2005 года
AnD1
9 / / 23.12.2005
Цитата:
Originally posted by mfender
Ну, примерно так. Специально набросал простенький примерчик.
<...>
На другом краю, напиши функцию, которая примет переданные данные. Если на PHP, то просто print_r($_POST); В Memo1.Text будет результат работы скрипта после отправки внего данных этой формы..



Спасибо огромное!!!
Сейчас буду разбираться ....

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог