Latest web development tutorials

programowania Ruby CGI

Ruby jest językiem uniwersalnym, a nie tylko jeden używany w języku tworzenie stron internetowych, ale rozwój Ruby w aplikacjach internetowych i narzędzi internetowych są najbardziej powszechne.

Nie tylko można użyć Ruby napisać swój własny serwer SMTP, FTP lub programu Ruby serwera WWW, ale może być również użyć programowania Ruby CGI.

Weźmy na chwilę, aby dowiedzieć się Ruby CGI edytowany.


przeglądanie stron internetowych

Aby lepiej zrozumieć, jak działa CGI, możemy kliknąć na link na stronie internetowej lub adresu URL procesu:

  • 1, należy użyć przeglądarki, aby uzyskać dostęp do adresu URL i podłączyć do serwera HTTP.
  • 2, serwer sieci Web odbiera komunikat żądania będą przetwarzane URL i wyszukać pliki dostępne na serwerze, jeśli istnieje, jeśli istnieje, aby przywrócić zawartość pliku, w przeciwnym wypadku zwraca komunikat o błędzie.
  • 3, przeglądarka otrzymuje informacje z serwera i wyświetla otrzymane wiadomości plików lub błędów.

Programy CGI może być skrypt Ruby skrypt Python, Perl skrypt, skrypt powłoki, C lub C ++ programy.


Wykres CGI

cgiarch


Konfiguracja serwera WWW i wsparcie

Przed przeprowadzić programowanie CGI, upewnij się, że serwer WWW został skonfigurowany do obsługi CGI oraz obsługi CGI.

Apache obsługuje konfigurację CGI:

Konfigurowanie katalogu CGI:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

Wszystkie serwer HTTP w celu wykonania programów CGI są zapisywane we wstępnie skonfigurowane katalogu. Ten katalog jest nazywany katalogu CGI, a zgodnie z przyjętą konwencją, to nazywa się w katalogu / var / www / cgi-bin.

Plik rozszerzenie .cgi CGI, Ruby może być również używany .rb rozszerzenie.

Domyślnie konfiguracja serwera Linux działa katalogu cgi-bin jest / var / www.

Jeśli chcesz określić inny katalog do uruchamiania skryptów CGI, można zmodyfikować plik konfiguracyjny httpd.conf w następujący sposób:

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Order allow,deny
   Allow from all
</Directory>

Dodaj .rb przyrostek AddHandler, dzięki czemu możemy uzyskać dostęp .rb koniec pliku skryptu Ruby:

AddHandler cgi-script .cgi .pl .rb

Pisanie skryptów CGI

Podstawowy kod Ruby CGI w następujący sposób:

#!/usr/bin/ruby

puts "Content-type: text/html\n\n"
puts "<html><body>This is a test</body></html>"

Można zachować kod do test.cgi serwer plików i ostatni w celu nadania odpowiednich uprawnień do wykonywania jako skrypt CGI.

Jeśli adres stoisz jak http://www.example.com/~~pobj, http://www.example.com/test.cgi~~pobj używanego do uzyskania dostępu do programu, wyjście to: "To jest test.".

Przeglądarka, aby uzyskać dostęp do witryny WWW, serwer WWW znajdzie plik test.cgi w katalogu witryny, a następnie rozwiązać interpretera Ruby skryptu i kod otwierając dokument HTML.


Korzystanie cgi.rb

Ruby może wywołać biblioteki CGI pisać bardziej złożonych skryptów CGI.

Poniższy kod wywołuje bibliotekę skryptów CGI, aby utworzyć skrypt CGI.

#!/usr/bin/ruby

require 'cgi'

cgi = CGI.new
puts cgi.header
puts "<html><body>This is a test</body></html>"

Poniższy kod należy utworzyć informacji o obiekcie CGI oraz nagłówka wydruku.


tworzenie formularzy

Korzystanie Biblioteka CGI można uzyskać na dwa sposoby, aby wysłać formularz (lub parametrów w adresie URL) danych, takich jak adres URL :? /cgi-bin/test.cgi FirstName = Zara i Nazwisko = Ali.

Można użyć CGI # [] bezpośrednio uzyskać parametry Imię i nazwisko:

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi['FirstName'] # =>  ["Zara"]
cgi['LastName']  # =>  ["Ali"]

Innym sposobem uzyskania danych z formularza:

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
h = cgi.params  # =>  {"FirstName"=>["Zara"],"LastName"=>["Ali"]}
h['FirstName']  # =>  ["Zara"]
h['LastName']   # =>  ["Ali"]

Poniższy kod jest używany do pobierania wszystkich kluczowych:

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi.keys         # =>  ["FirstName", "LastName"]

Jeśli formularz zawiera wiele pól o tej samej nazwie, to wartość tej samej dziedzinie będą przechowywane w tablicy.

W poniższym przykładzie, należy określić formę trzech identycznych polach "Nazwa", wartości "Zara", "Huma" i "Nuha":

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi['name']        # => "Zara"
cgi.params['name'] # => ["Zara", "Huma", "Nuha"]
cgi.keys           # => ["name"]
cgi.params         # => {"name"=>["Zara", "Huma", "Nuha"]}

Uwaga: Ruby automatycznie określić GET i metody POST, nie ma potrzeby rozróżnienia między tymi dwoma metodami.

Oto odpowiedni kod HML:

<html>
<body>
<form method="POST" action="http://www.example.com/test.cgi">
First Name :<input type="text" name="FirstName" value="" />
<br />
Last Name :<input type="text" name="LastName" value="" /> 

<input type="submit" value="Submit Data" />
</form>
</body>
</html>

Tworzenie formularzy i formularzy HTML

CGI zawiera wiele sposobów tworzenia HTML, każdy tag HTML ma odpowiednią metodę. Przed zastosowaniem tych metod, stosunek musi CGI do tworzenia obiektów CGI.new.

W celu dokonania etykietę bardziej proste zagnieżdżanie, metody te będą treść jako blok kodu, to blok kodu zwraca ciąg jako etykiecie zawartości. W następujący sposób:

#!/usr/bin/ruby

require "cgi"
cgi = CGI.new("html4")
cgi.out{
   cgi.html{
      cgi.head{ "\n"+cgi.title{"This Is a Test"} } +
      cgi.body{ "\n"+
         cgi.form{"\n"+
            cgi.hr +
            cgi.h1 { "A Form: " } + "\n"+
            cgi.textarea("get_text") +"\n"+
            cgi.br +
            cgi.submit
         }
      }
   }
}

ucieczka String

Kiedy masz do czynienia z parametrami w danych formularza URL lub HTML, trzeba określić ucieczkę znaki specjalne, takie jak: cudzysłów ( "), ukośnik (/).

Ruby CGI Obiekt zapewnia CGI.escape CGI.unescape i sposoby radzenia sobie z ucieczką tych znaków specjalnych:

#!/usr/bin/ruby

require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")

Powyższy kod jest wykonywany w następujący sposób:

#!/usr/bin/ruby

require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")

Inny zestaw przykładów:

#!/usr/bin/ruby

require 'cgi'
puts CGI.escapeHTML('<h1>Zara Ali/A Sweet & Sour Girl</h1>')

Powyższy kod jest wykonywany w następujący sposób:

&lt;h1&gt;Zara Ali/A Sweet & Sour Girl&lt;/h1&gt;'

Metody klasy CGI powszechnie stosowane

Oto pełna metoda klasy Ruby CGI

  • CGI Ruby - standardowa biblioteka CGI podobne metody

Cookies i sesji