programmazione Ruby CGI
Ruby è un linguaggio universale, non solo quello usato nel linguaggio di sviluppo web, ma lo sviluppo Ruby in applicazioni Web e strumenti web sono i più comuni.
Non solo è possibile utilizzare Ruby per scrivere il proprio server SMTP, FTP, o il server Web Ruby, ma anche può essere uso di programmazione Ruby CGI.
Prendiamo un momento per imparare Ruby CGI modificato.
navigazione Web
Per capire meglio come funziona la CGI, siamo in grado di cliccare su un link in una pagina web o un URL del processo:
- 1, utilizzare il browser per accedere all'URL e connettersi al server Web HTTP.
- 2, il server Web riceve il messaggio di richiesta sarà analizzata URL e guardare file acceduti sul server se c'è, se c'è da restituire il contenuto del file, altrimenti restituisce un messaggio di errore.
- 3, il browser riceve le informazioni dal server e visualizza i messaggi di file o di errore ricevuti.
programmi CGI possono essere uno script Ruby, script Python, script in Perl, shell script, programmi C o C ++.
Grafico CGI
configurazione del server Web e il supporto
Prima di effettuare la programmazione CGI, fare in modo che il server Web è stato configurato per supportare CGI e gestore CGI.
Apache supporta la configurazione CGI:
Impostare la directory CGI:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Tutti i server HTTP per eseguire programmi CGI vengono memorizzati in una directory pre-configurato. Questa directory è chiamata la directory CGI, e per convenzione, prende il nome / var / www / directory cgi-bin.
file di CGI estensione .cgi, Ruby può essere utilizzato anche estensione .RB.
Per impostazione predefinita, la configurazione del server Linux in esecuzione directory cgi-bin è / var / www.
Se si desidera specificare una directory diversa per eseguire script CGI, è possibile modificare il file di configurazione httpd.conf come segue:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
Aggiungere .RB AddHandler suffisso, in modo da poter accedere fine .RB del file di script di Ruby:
AddHandler cgi-script .cgi .pl .rb
Scrivere script CGI
codice di base di Ruby CGI come segue:
#!/usr/bin/ruby puts "Content-type: text/html\n\n" puts "<html><body>This is a test</body></html>"
È possibile mantenere il codice per test.cgi file server e l'ultimo ad impartire autorizzazioni sufficienti per eseguire come script CGI.
Se l'indirizzo ti trovi come http://www.example.com/, http://www.example.com/test.cgi utilizzato per accedere al programma, l'output è: "Questa è una prova.".
Il browser per accedere al sito Web, server Web trovare il file test.cgi nella directory del sito, e quindi a risolvere l'interprete e sceneggiatura codice Ruby accedendo a un documento HTML.
Usa cgi.rb
Rubino può chiamare libreria CGI di scrivere script CGI più complesse.
Il codice seguente chiama la libreria di script CGI per creare uno script CGI.
#!/usr/bin/ruby require 'cgi' cgi = CGI.new puts cgi.header puts "<html><body>This is a test</body></html>"
Il seguente codice, creare un oggetto informazioni CGI e intestazione di stampa.
elaborazione dei moduli
Utilizzando biblioteca CGI può essere ottenuto in due modi per inviare il modulo (o parametri nella URL) di dati, come ad esempio l'URL :? /cgi-bin/test.cgi FirstName = Zara & Cognome = Ali.
È possibile utilizzare i CGI # [] ottenere direttamente i parametri di nome e cognome:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi['FirstName'] # => ["Zara"] cgi['LastName'] # => ["Ali"]
Un altro metodo per ottenere i dati del modulo:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new h = cgi.params # => {"FirstName"=>["Zara"],"LastName"=>["Ali"]} h['FirstName'] # => ["Zara"] h['LastName'] # => ["Ali"]
Il seguente codice viene utilizzato per recuperare tutta la chiave:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi.keys # => ["FirstName", "LastName"]
Se il modulo contiene più campi con lo stesso nome, il valore dello stesso campo sarà memorizzato in una matrice.
Il seguente esempio, specificare la forma di tre campi identici "nome", i valori di "Zara", "Huma" e "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"]}
Nota: rubino determina automaticamente i metodi GET e POST, non vi è alcuna necessità di distinguere tra i due metodi.
Ecco il relativo codice 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>
Creazione di moduli e form HTML
CGI contiene un sacco di modi per creare HTML, ogni tag HTML ha un metodo corrispondente. Prima di utilizzare questi metodi, il rapporto deve CGI per creare oggetti CGI.new.
Al fine di rendere l'etichetta più semplice nesting, questi metodi saranno contenuti in un blocco di codice, il blocco di codice restituisce la stringa come etichetta contenuti. Come segue:
#!/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 } } } }
stringa di escape
Quando si ha a che fare con i parametri dei dati del modulo URL o HTML, è necessario specificare la fuga caratteri speciali, come ad esempio: le virgolette ( "), barra (/).
Rubino oggetto CGI fornisce CGI.escape CGI.unescape e metodi per affrontare la fuga di questi caratteri speciali:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
Il codice di cui sopra viene eseguita come segue:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
Un'altra serie di esempi:
#!/usr/bin/ruby require 'cgi' puts CGI.escapeHTML('<h1>Zara Ali/A Sweet & Sour Girl</h1>')
Il codice di cui sopra viene eseguita come segue:
<h1>Zara Ali/A Sweet & Sour Girl</h1>'
metodi di classe CGI comunemente utilizzati
Ecco il metodo completo in Ruby classe CGI
- CGI The Ruby - metodi libreria CGI standard correlati
Cookie e Sessions
- I cookie CGI Ruby - come trattare con i cookie CGI.
- Le sessioni CGI Ruby - come affrontare le sessioni di CGI.