Latest web development tutorials

программирование Рубин CGI

Рубин является универсальным языком, а не только тот, используемый в языке разработки WEB, но развитие Рубин в веб-приложений и веб-инструментов являются наиболее распространенными.

Мало того, вы можете использовать Ruby, чтобы написать свой собственный SMTP-сервер, программу FTP или веб-сервер на Ruby, но также может быть использовать программирование Рубин CGI.

Давайте минуту, чтобы узнать Ruby, CGI отредактированный.


просмотр веб-страниц

Чтобы лучше понять, как работает CGI, мы можем нажать на ссылку на веб-странице или URL процесса:

  • 1, использовать браузер для доступа к URL и подключиться к HTTP веб-сервер.
  • 2, Web-сервер получает сообщение с запросом будет анализироваться URL и посмотреть получил доступ к файлам на сервере, если есть, если есть, чтобы вернуть содержимое файла, в противном случае она возвращает сообщение об ошибке.
  • 3, браузер получает информацию с сервера и отображает полученный файл или сообщения об ошибках.

Программы CGI могут быть сценарий Рубин, сценарий Python, Perl скрипт, скрипт SHELL, C или C ++ программ.


CGI Chart

cgiarch


Конфигурация сервера Web и поддержка

Перед тем, как проводить программирование CGI, убедитесь, что ваш веб-сервер был настроен для поддержки CGI и обработчик CGI.

Apache поддерживает конфигурацию CGI:

Настройка каталога CGI:

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

Все сервера HTTP для выполнения программы CGI сохраняются в предварительно сконфигурированной директории. Этот каталог называется каталог CGI, а также по соглашению, он называется / вар / WWW / CGI-BIN каталога.

CGI расширение файла .cgi, Ruby может также использоваться .rb расширение.

По умолчанию, конфигурация сервера Linux работает каталог CGI-BIN является / Var / WWW.

Если вы хотите указать другой каталог для запуска CGI скриптов, вы можете изменить файл конфигурации httpd.conf следующим образом:

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

Добавить .rb суффикс AddHandler, так что мы можем получить доступ к .rb конец файла сценария Ruby:

AddHandler cgi-script .cgi .pl .rb

Написать CGI скрипты

Базовый Рубин код CGI выглядит следующим образом:

#!/usr/bin/ruby

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

Вы можете сохранить код test.cgi файловый сервер и последний для придания достаточных разрешений для выполнения в качестве сценария CGI.

Если адрес вы стоите, как http://www.example.com/~~pobj, http://www.example.com/test.cgi~~pobj используется для доступа к программе, вывод: "Это тест.".

Браузер для доступа к веб-сайт, веб-сервер будет найти файл test.cgi в каталоге сайта, а затем разрешить интерпретатор и код скрипта Ruby, путем доступа к HTML-документ.


Использование cgi.rb

Рубин может назвать библиотеку CGI, чтобы писать более сложные сценарии CGI.

Следующий код вызывает библиотеку CGI скрипт для создания CGI-скрипт.

#!/usr/bin/ruby

require 'cgi'

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

Следующий код, создать информацию об объекте CGI и заголовка печати.


Обработка бланков

Использование библиотеки CGI можно получить двумя способами для отправки формы (или параметров в URL) данных, таких как URL :? /cgi-bin/test.cgi FirstName = Zara & LastName = Али.

Вы можете использовать CGI # [] непосредственно получить параметры FirstName и LastName:

#!/usr/bin/ruby

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

Другой способ получения данных формы:

#!/usr/bin/ruby

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

Следующий код используется для извлечения всех ключ:

#!/usr/bin/ruby

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

Если форма содержит несколько полей с одинаковым именем, то значение того же поля будет храниться в массиве.

В следующем примере, указать форму трех одинаковых полей "имя", значения "Zara", "Huma" и "Нуха":

#!/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"]}

Примечание: Рубин будет автоматически определять GET и POST методов, нет необходимости проводить различие между этими двумя методами.

Вот соответствующий код 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>

Создание форм и форм HTML

CGI содержит много способов, чтобы создать HTML, каждый из HTML-тег имеет соответствующий метод. Перед использованием этих методов, соотношение должно CGI для создания объектов CGI.new.

Для того, чтобы сделать этикетку более простой вложенности, эти методы будут довольствоваться как блок кода, блок кода возвращает строку в качестве метки контента. Как следует:

#!/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
         }
      }
   }
}

Строка побег

Когда вы имеете дело с параметрами в данных формы URL или HTML, вам нужно указать побега специальные символы, такие как: кавычки ( "), косая черта (/).

Рубин объект CGI обеспечивает CGI.escape CGI.unescape и методы, чтобы иметь дело с побега эти специальные символы:

#!/usr/bin/ruby

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

Приведенный выше код выполняется следующим образом:

#!/usr/bin/ruby

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

Другой набор примеров:

#!/usr/bin/ruby

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

Приведенный выше код выполняется следующим образом:

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

методы класса CGI обычно используется

Вот полный метод в классе Ruby, CGI

  • CGI The Ruby - стандартная библиотека CGI , связанные методы

Cookies и сеансы