Delphi i CGI cz.1

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Witam!
Strony WWW na samym początku były tworzone w samym HTML-u, później wprowadzono coś takiego jak CGI.
I tym się dzisiaj zajmiemy.

Q:Co to jest CGI?
A: CGI (ang. Common Gateway Interface) to znormalizowany interfejs, umożliwiający komunikację pomiędzy oprogramowaniem serwera WWW a innymi programami znajdującymi się na serwerze. Zazwyczaj program serwera WWW wysyła do przeglądarki statyczne dokumenty HTML. Za pomocą programów CGI można dynamicznie (na żądanie klienta) generować dokumenty HTML uzupełniając je np. treścią pobieraną z bazy danych.
Źródło: http://pl.wikipedia.org/wiki/CGI

Q:Z czego będziemy korzystać?
A: Z Delphi i serwer-a Apache, a dokładniej pakietu xampp.


1. Prosta strona
Uruchamiamy Delphi(w moim przypadku jest to Delphi 7 Enterprise).

Klikamy File - New - Other…
Wybieramy Web Server Application z repozytorium.

obraz1.png


Zaznaczamy jak powyższym obrazie, czyli “CGI-Stand-alone executable”.
I ok.

W Object Inspector wybieramy “Actions”(klikamy na “…”).

obraz2.png


Powinno nam się pojawić coś mniej więcej takiego:

obraz1.png


Teraz klikamy na “Add New(Ins)”.
obraz4.png

Powinno nam się pokazać mniej więcej coś takiego:


obraz5.png



Klikamy na to i w Object Inspectorze ustawiamy:
Default na true (oznacza to że będzie to domyślna strona).
PathInfo na “/default” (bez “”).
Resztę zostawiamy.

obraz6.png



Teraz w Events, klikamy na onAction i pod tym zdarzeniem piszemy:
Kod:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
HTML : string;
begin
HTML := '<html>' // Żeby zrozumieć ten kod potrzeba jest podstawowa znajomość HTML-a
+ '<head>'
+ '<title>Delphi i CGI</title>'
+ '</head>'
+ '<body>'
+ '<h1>Delphi i CGI</h1>'
+ '<hr>'
+ 'Witaj na stronie napisanej przy użyciu Delphi!'
+ '</body>'
+ '</html>';

Response.Content := HTML; // zwracamy to co jest w zmiennej HTML
end;
Teraz zapisujemy nasz projekt i kompilujemy.
Teraz musimy sprawdzić czy działa nasza “strona”. Ja w tym wypadku będę korzystał z serwer-a www
“Apache”, a dokładniej z pakietu xampp.
Ja w tym wypadku muszę umieścić stronę w “c:\xampp\cgi-bin”.

Teraz sprawdzamy! W moim przypadku adres strony to “http://localhost/cgi-bin/Project2.exe”.
localhost wskazuje na komputer na którym obecnie pracujesz.

2. Page Producer i przesyłanie danych metodą GET
Uruchamiamy Delphi(w moim przypadku jest to Delphi 7 Enterprise).

Klikamy File - New - Other…
Wybieramy Web Server Application z repozytorium.

obraz1.png



Zaznaczamy jak powyższym obrazie, czyli “CGI-Stand-alone executable”.
I ok.
Wstawiamy na formę komponent “PageProducer” z zakładki “Internet”.

W object inspectorze klikamy na HTMLDoc i wpisujemy tam:
Kod:
<html>

<head>
<title>Delphi i CGI</title>
</head>
<body>
<form action="/cgi-bin/Project1.exe/show" method="GET">
Wpisz swoje imie: <input id="" name="name" />


<input type="submit" value="Wyślij!" />
</form>
</body>
</html>
Następnie klikamy na “WebModule1″.
W Object Inspector wybieramy “Actions”(klikamy na “…”).

obraz2.png



Następnie klikamy na “Add New(Ins)”.
Default ustawiamy na true.
PathInfo na “/default”.
ProducerContent na PageProducer1.

Teraz znowu klikamy na “Add New (Ins)”.
PathInfo ustawiamy na “/show”.

Po OnAction piszemy:
Kod:
procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
Imie : String;
HTML : TStringList;
begin
HTML := TStringList.Create(); // tworzy TStringList
Imie := Request.QueryFields.Values['name']; // Do imie przypisujemy wartosc name z GET ?name=xxx

Html.Add('<html>'); // generujemy witryne troche inny sposob niz pokazalem wczesniej
html.Add('<head><title>Delphi i CGI</title></head>');
html.Add('<body>');
html.Add('Nazywasz się ' + Imie);
html.Add('</body>');
html.Add('</html>');

Response.Content := Html.Text; // wysyłamy witrynę do użytkownika
end;
Teraz możemy to zapisać i skompilować.

Koniec.

ZAKAZ KOPIOWANIA NA INNE FORA, STRONY, ITP.
 

kanar123

Użytkownik
Dołączył
Marzec 27, 2008
Posty
451
Jak na razie nic wielkiego, ale przewodnią myślą tego tutoriala powinno być na początku uświadomienie niewtajemniczonym co to jest CGI... a Ty wyjeżdżasz z gotowcem...

Pouzupełniaj tagi "code"
<


A tak poza tym to kolejny poradnik dla topornych...
 
Do góry Bottom