Pokaż wyniki od 1 do 3 z 3

Temat: Delphi i CGI cz.1

  1. #1
    Użytkownik
    Dołączył
    24-01-2009
    Posty
    123

    Domyślnie

    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:
    Kod:
    procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var
    HTML : string;
    begin
    HTML := &#39;<html>&#39; // Żeby zrozumieć ten kod potrzeba jest podstawowa znajomość HTML-a
    + &#39;<head>&#39;
    + &#39;<title>Delphi i CGI</title>&#39;
    + &#39;</head>&#39;
    + &#39;<body>&#39;
    + &#39;<h1>Delphi i CGI</h1>&#39;
    + &#39;<hr>&#39;
    + &#39;Witaj na stronie napisanej przy użyciu Delphi!&#39;
    + &#39;</body>&#39;
    + &#39;</html>&#39;;
    
    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.




    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 “…”).




    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[&#39;name&#39;]; // Do imie przypisujemy wartosc name z GET ?name=xxx
    
    Html.Add(&#39;<html>&#39;); // generujemy witryne troche inny sposob niz pokazalem wczesniej
    html.Add(&#39;<head><title>Delphi i CGI</title></head>&#39;);
    html.Add(&#39;<body>&#39;);
    html.Add(&#39;Nazywasz się &#39; + Imie);
    html.Add(&#39;</body>&#39;);
    html.Add(&#39;</html>&#39;);
    
    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.

  2. #2
    Użytkownik Avatar kanar123
    Dołączył
    27-03-2008
    Skąd
    127.0.0.1
    Posty
    444

    Domyślnie

    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...

  3. #3
    Użytkownik (R) Avatar djmentos
    Dołączył
    01-05-2007
    Skąd
    Gdansk, Poland, Poland
    Posty
    1 862

    Domyślnie

    Wytłumaczył to bardzo dobrze i mimo, że forma gotowca to nawet ładnie. Dla mnie bomba.

Podobne wątki

  1. roznice pomiedzy delphi 6 a delphi 7
    Przez sWhite
    w forum Inne
    Odpowiedzi: 7
    Ostatni post / autor: 14-03-2003, 14:18

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •