programación Ruby CGI
Ruby es un lenguaje universal, no sólo el que se utiliza en el lenguaje de desarrollo web, pero el desarrollo de Ruby en aplicaciones web y herramientas web son los más comunes.
No sólo se puede utilizar Ruby a escribir su propio servidor SMTP, el programa de FTP o servidor Web Ruby, pero también se puede utilizar de programación Ruby CGI.
Vamos a tomar un momento para aprender Ruby CGI editado.
navegación web
Para entender mejor cómo funciona CGI, podemos hacer clic en un enlace en una página web o URL del proceso:
- 1, utilizar el navegador para acceder a la URL y conectarse con el servidor web HTTP.
- 2, el servidor Web recibe el mensaje de solicitud será analizada URL y buscar los archivos a los que accede en el servidor si hay, si hay que devolver el contenido del archivo, de lo contrario, devuelve un mensaje de error.
- 3, el navegador recibe la información desde el servidor y muestra los mensajes de error o de archivos recibidos.
Los programas CGI pueden ser un script Ruby, Python guión, guión escrito en Perl script de shell, los programas de C o C ++.
Gráfico CGI
configuración del servidor web y el apoyo
Antes de realizar la programación CGI, asegúrese de que el servidor Web se ha configurado para soportar CGI y controlador CGI.
Apache soporta la configuración CGI:
Configurar el directorio CGI:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Todo servidor HTTP para ejecutar programas CGI se almacenan en un directorio preconfigurado. Este directorio se llama el directorio CGI, y por convención, se nombra directorio / var / www / cgi-bin.
archivo CGI extensión .cgi, Ruby también se puede utilizar la extensión .rb.
Por defecto, la configuración del servidor Linux corriendo directorio cgi-bin es / var / www.
Si desea especificar un directorio diferente para ejecutar scripts CGI, puede modificar el archivo de configuración httpd.conf de la siguiente manera:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
Añadir .rb AddHandler sufijo, por lo que podemos acceder .rb final del archivo de script Ruby:
AddHandler cgi-script .cgi .pl .rb
Escribir scripts CGI
código básico CGI de Ruby como sigue:
#!/usr/bin/ruby puts "Content-type: text/html\n\n" puts "<html><body>This is a test</body></html>"
Puede mantener el código para test.cgi servidor de archivos y la última para impartir permisos suficientes para realizar como un script CGI.
Si la dirección se pone de pie como http://www.example.com/, http://www.example.com/test.cgi utilizado para acceder al programa, la salida es: "Esto es una prueba.".
El navegador para acceder al sitio Web, servidor Web se encuentra el archivo en el directorio test.cgi sitio, y luego resolver el intérprete y la escritura de código Ruby mediante el acceso a un documento HTML.
uso cgi.rb
Ruby puede llamar a la biblioteca CGI para escribir scripts CGI más complejas.
El siguiente código llama a la biblioteca script CGI para crear una secuencia de comandos CGI.
#!/usr/bin/ruby require 'cgi' cgi = CGI.new puts cgi.header puts "<html><body>This is a test</body></html>"
El siguiente código, crear un objeto de información CGI y de cabeza de impresión.
Procesamiento de formularios
El uso de la biblioteca CGI se puede obtener de dos formas de enviar el formulario (o parámetros en la URL) de datos, como la dirección URL :? /cgi-bin/test.cgi Nombre = Zara y apellido = Ali.
Se pueden utilizar los CGI # [] obtener directamente los parámetros de nombre y apellidos:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi['FirstName'] # => ["Zara"] cgi['LastName'] # => ["Ali"]
Otro método para la obtención de los datos del formulario:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new h = cgi.params # => {"FirstName"=>["Zara"],"LastName"=>["Ali"]} h['FirstName'] # => ["Zara"] h['LastName'] # => ["Ali"]
El siguiente código se utiliza para recuperar todas las claves:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi.keys # => ["FirstName", "LastName"]
Si el formulario contiene varios campos con el mismo nombre, entonces el valor del mismo campo se almacena en una matriz.
En el siguiente ejemplo, especificar la forma de tres campos idénticos "nombre", los valores de "Zara", "Huma" y "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: Rubí determinará automáticamente el métodos GET y POST, no hay necesidad de distinguir entre los dos métodos.
Aquí está el código HML relevante:
<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>
Creación de formularios y de formularios HTML
CGI contiene una gran cantidad de maneras de crear HTML, cada etiqueta HTML tiene un método correspondiente. Antes de utilizar estos métodos, la relación debe CGI para crear objetos CGI.new.
Con el fin de hacer que la etiqueta más sencilla de anidación, estos métodos serán contenido como un bloque de código, el bloque de código devuelve la cadena como una etiqueta de contenido. En la siguiente manera:
#!/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 } } } }
cadena de escape
Cuando se trata de parámetros en los datos del formulario de URL o HTML, es necesario especificar el escape caracteres especiales, como por ejemplo: entre comillas ( "), barra (/).
Rubí objeto CGI proporciona cgi.escape CGI.unescape y métodos para hacer frente a escapar estos caracteres especiales:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
El código de seguridad se ejecuta como sigue:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
Otro conjunto de ejemplos:
#!/usr/bin/ruby require 'cgi' puts CGI.escapeHTML('<h1>Zara Ali/A Sweet & Sour Girl</h1>')
El código de seguridad se ejecuta como sigue:
<h1>Zara Ali/A Sweet & Sour Girl</h1>'
métodos de clase CGI utilizan comúnmente
Éstos son el método completo en clase CGI de Ruby
- CGI los rubíes - métodos biblioteca CGI estándar relacionados
Cookies y Sesiones
- Las galletas de la CGI de Ruby - cómo tratar con las galletas CGI.
- Las Sesiones del CGI de Ruby - cómo tratar con sesiones de CGI.