Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Общие вопросы > WEB-Программирование
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.12.2007, 18:16
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию Как получить данные, передаваемые методом GET, в CGI-приложении?

Как получить данные, передаваемые методом GET, в CGI-приложении?
Сделал как в FAQ, не получилось.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #2  
Старый 01.01.2008, 18:54
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Сам нашел:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
unit GetParams;
interface
  
uses
SysUtils, Windows;
  
procedure Main;
  
implementation
  
var
InParams: String;
ChatFile: TextFile;
  
procedure InitParams;// Читаем переданные параметры из переменной окружения
var SS: String;
begin
SetLength(SS, 10000);
GetEnvironmentVariable('QUERY_STRING', @SS[1], 2000);
InParams:=PChar(@SS[1]);
end;
  
function HexToInt(CH: char): integer;// Функция переводит шестнадчитиричный символ в число
begin
Result:=0;
case CH of
'0'..'9': Result:=Ord(CH)-Ord('0');
'A'..'F': Result:=Ord(CH)-Ord('A')+10;
'a'..'f': Result:=Ord(CH)-Ord('a')+10;
end;
end;
  
function Decode(Value: String): String;// Преобразует символы, записанные в виде %2B к правильному виду
var
I, L: Integer;
begin
Result:='';
L:=0;
for I:=1 to Length(Value) do begin
if(Value[i]<>'%') and (Value[i]<>'+') and (L<1) then begin
Result:=Result+Value[i];
end else begin
if(Value[i]='+') then
Result:=Result+' '
else if(Value[i]='%') then begin
L:=2;
if(I<Length(Value)-1) then begin
Result:=Result+Chr(HexToInt(Value[I+1])*16+HexToInt(Value[I+2]));
end;
end else
Dec(L);
end;
end;
end;
  
function ParamByName(Name: String): String;// Возвращает значение параметра, заданного в Name
var
SS, ST: String;
K: Integer;
begin
Result:='';
SS:=InParams;
while Length(SS)<>0 do begin
K:=Pos('&',SS);
if(K<>0) then begin
ST:=Copy(SS,1,K-1);
SS:=Copy(SS,K+1,10000);
end else begin
ST:=SS;
SS:='';
end;
K:=Pos('=',ST);
if(K<>0) then begin
if(Name=Copy(ST,1,K-1)) then begin
Result:=Decode(Copy(ST,K+1,6000));
end;
end;
end;
end;
  
procedure Main;
begin
InitParams;
//Дальше можно получать значения параметров функцией ParamByName
end;
 
end.
  
......
  
//Файл проекта
program Project1;
  
{$APPTYPE CONSOLE}
  
{$e cgi}
  
uses
  Windows,
  GetParams in 'GetParams.pas';
begin
Main;
end.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025