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.
Zaznaczamy jak powyższym obrazie, czyli “CGI-Stand-alone executable”.
I ok.
W Object Inspector wybieramy “Actions”(klikamy na “…”).
Powinno nam się pojawić coś mniej więcej takiego:
Teraz klikamy na “Add New(Ins)”.
Powinno nam się pokazać mniej więcej coś takiego:
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.
Teraz w Events, klikamy na onAction i pod tym zdarzeniem piszemy:
Teraz zapisujemy nasz projekt i kompilujemy.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 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.
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:
Następnie klikamy na “WebModule1″.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>
W Object Inspector wybieramy “Actions”(klikamy na “…”).
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:
Teraz możemy to zapisać i skompilować.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;
Koniec.
ZAKAZ KOPIOWANIA NA INNE FORA, STRONY, ITP.







Odpowiedź z Cytatem