Latest web development tutorials

programação Ruby CGI

Ruby é uma linguagem universal, não apenas o utilizado na linguagem de desenvolvimento web, mas de desenvolvimento Ruby em aplicações web e ferramentas da web são os mais comuns.

Não apenas você pode usar Ruby para escrever seu próprio servidor SMTP, o programa de FTP ou servidor Web Ruby, mas também pode ser usar de programação Ruby CGI.

Vamos ter um momento para aprender Ruby CGI editado.


navegação na web

Para entender melhor como funciona CGI, podemos clicar em um link em uma página da web ou URL do processo:

  • 1, use o navegador para acessar a URL e se conectar ao servidor HTTP web.
  • 2, servidor da Web recebe a mensagem de pedido será analisado URL e procurar arquivos acessados ​​no servidor se houver, se houver para retornar o conteúdo do arquivo, caso contrário ele retorna uma mensagem de erro.
  • 3, o navegador recebe as informações a partir do servidor e exibe as mensagens de arquivos ou erro recebido.

programas CGI pode ser um script Ruby, Python script, script Perl, shell script, C ou programas em C ++.


CGI Gráfico

cgiarch


configuração do servidor Web e suporte

Antes de realizar a programação CGI, certifique-se de que seu servidor Web tenha sido configurado para suportar CGI e manipulador de CGI.

Apache suporta configuração CGI:

Configure o diretório CGI:

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

Todos servidor HTTP para executar programas CGI são armazenados em um diretório pré-configurado. Este diretório é chamado o diretório CGI e, por convenção, é nomeado / var / www diretório / cgi-bin.

arquivo CGI extensão .cgi, Ruby também pode ser usado extensão .rb.

Por padrão, a configuração do servidor Linux rodando diretório cgi-bin é / var / www.

Se você deseja especificar um diretório diferente para executar scripts CGI, você pode modificar o arquivo de configuração httpd.conf como segue:

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

Adicionar AddHandler sufixo .rb, para que possamos acessar final .rb do arquivo de script Ruby:

AddHandler cgi-script .cgi .pl .rb

Escrever scripts CGI

código básico CGI Ruby como segue:

#!/usr/bin/ruby

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

Você pode manter o código para test.cgi servidor de arquivos e o último para dar permissões suficientes para executar como um script CGI.

Se o endereço que se apresentam como http://www.example.com/, http://www.example.com/test.cgi usado para acessar o programa, a saída é: "Este é um teste.".

O navegador para acessar o site da Web, servidor Web vai encontrar o arquivo test.cgi no diretório local, e, em seguida, para resolver o intérprete e roteiro código Ruby, acessando um documento HTML.


Use cgi.rb

Ruby pode chamar biblioteca CGI para escrever scripts CGI mais complexos.

O código a seguir chama a biblioteca script CGI para criar um script CGI.

#!/usr/bin/ruby

require 'cgi'

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

O código a seguir, crie um objeto informações CGI e cabeçalho de impressão.


Forms Processing

Usando biblioteca CGI pode ser obtido de duas maneiras para enviar o formulário (ou parâmetros na URL) de dados, tais como URL :? /cgi-bin/test.cgi FirstName = Zara & LastName = Ali.

Você pode usar os CGI # [] obter directamente parâmetros nome e sobrenome:

#!/usr/bin/ruby

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

Outro método para a obtenção dos dados de formulário:

#!/usr/bin/ruby

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

O código a seguir é usado para recuperar toda a chave:

#!/usr/bin/ruby

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

Se o formulário contém vários campos com o mesmo nome, então o valor do mesmo campo vai ser armazenado em uma matriz.

O exemplo a seguir, especifique a forma de três campos idênticos "nome", os valores de "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: Ruby irá determinar automaticamente a métodos GET e POST, não há necessidade de distinguir entre os dois métodos.

Aqui está o 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>

Criação de Formas e formulário HTML

CGI contém uma série de maneiras de criar HTML, cada tag HTML tem um método correspondente. Antes de usar esses métodos, a relação deve CGI para criar objetos CGI.new.

A fim de tornar o rótulo de nidificação mais simples, esses métodos será o conteúdo como um bloco de código, o bloco de código retorna a cadeia como um rótulo de conteúdo. Como se 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
         }
      }
   }
}

fuga de Cordas

Quando você está lidando com parâmetros nos dados do formulário de URL ou HTML, você precisa especificar o escape caracteres especiais, tais como: aspas ( "), barra (/).

Rubi objeto CGI fornece cgi.escape CGI.unescape e métodos para lidar com escapar esses caracteres especiais:

#!/usr/bin/ruby

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

O código acima é executado da seguinte forma:

#!/usr/bin/ruby

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

Outro conjunto de exemplos:

#!/usr/bin/ruby

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

O código acima é executado da seguinte forma:

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

métodos de classe CGI comumente usado

Aqui estão o método completo em sala de aula CGI Rubi

  • CGI as Rubi - métodos biblioteca CGI padrão relacionados

Cookies e Sessões