Методы CGI в Ruby
Ниже приведён список методов класса CGI:
| Нет. | Описание метода |
|---|---|
| 1 | CGI::new([ level="query"]) Создаёт объект CGI. query может принимать следующие значения:
|
| 2 | CGI::escape( str) Используйте URL-кодирование для экранирования строки. |
| 3 | CGI::unescape( str) Декодирует строку, закодированную с помощью escape(). |
| 4 | CGI::escapeHTML( str) Кодировать специальные символы HTML, включая: & < >. |
| 5 | CGI::unescapeHTML( str) Декодировать специальные символы HTML, включая: & < >. |
| 6 | CGI::escapeElement( str[, element...]) Кодировать специальные символы HTML внутри указанного HTML-элемента. |
| 7 | CGI::unescapeElement( str, element[, element...]) Декодировать специальные символы HTML внутри указанного HTML-элемента. |
| 8 | CGI::parse( query) Разобрать строку запроса и вернуть хеш, содержащий пары key=>value. |
| 9 | CGI::pretty( string[, leader=" "]) Возвращает аккуратно отформатированный HTML. Если указанleader, он будет записан в начало каждой строки.leaderЗначение по умолчанию — два пробела. |
| 10 | CGI::rfc1123_date( time) Форматирует время в соответствии с RFC-1123 (например, Tue, 2 Jun 2008 00:00:00 GMT). |
Методы экземпляра CGI
В следующем примере мы присваиваем объект CGI::new переменной c. Список методов приведён ниже:
| Нет. | Описание метода |
|---|---|
| 1 | c[ name] Возвращает массив, содержащий соответствующее имя поляимязначение. |
| 2 | c.checkbox( name[, value[, check=false]]) c.checkbox( options) Возвращает HTML-строку для определения поля флажка. Атрибуты тега можно передать в виде хеш-аргумента. |
| 3 | c.checkbox_group( name, value...) c.checkbox_group( options) > Возвращает HTML-строку для определения группы флажков. Атрибуты тега можно передать в виде хеш-аргумента. |
| 4 | c.file_field( name[, size=20[, max]]) c.file_field( options) Возвращает HTML-строку для определения поля файла. |
| 5 | c.form([ method="post"[, url]]) { ...} c.form( options) Возвращает HTML-строку для определения формы. Если указан блок кода, он будет выведен как содержимое формы. Атрибуты тега можно передать в виде хэш-аргумента. |
| 6 | c.cookies Возвращает объект CGI::Cookie, содержащий пары ключ-значение из cookie. |
| 7 | c.header([ header]) Возвращает информацию о заголовке CGI. Если параметр header является хэшем, его пары ключ-значение используются для создания информации о заголовке. |
| 8 | c.hidden( name[, value]) c.hidden( options) Возвращает строку HTML для определения скрытого поля. Атрибуты тега можно передать в виде хеш-аргумента. |
| 9 | c.image_button( url[, name[, alt]]) c.image_button( options) Возвращает строку HTML для определения кнопки-изображения. Атрибуты тега можно передать в виде хеш-аргумента. |
| 10 | c.keys Возвращает массив, содержащий имена полей формы. |
| 11 | c.key?( name) c.has_key?( name) c.include?( name) Возвращает true, если форма содержит указанное имя поля. |
| 12 | c.multipart_form([ url[, encode]]) { ...} c.multipart_form( options) { ...} Возвращает HTML-строку для определения multipart-формы. Атрибуты тега можно передать в виде аргумента-хеша. |
| 13 | c.out([ header]) { ...} Генерирует HTML и выводит его. Используйте вывод блока для создания строки, генерируемой для тела страницы. |
| 14 | c.params Возвращает хеш, содержащий имена и значения полей формы. |
| 15 | c.params= hash Задаёт имя поля и значение для использования. |
| 16 | c.password_field( name[, value[, size=40[, max]]]) c.password_field( options) Возвращает HTML-строку для определения поля пароля. Атрибуты тега можно передать в виде аргумента-хеша. |
| 17 | c.popup_menu( name, value...) c.popup_menu( options) c.scrolling_list( name, value...) c.scrolling_list( options) Возвращает HTML-строку для определения всплывающего меню. Атрибуты тега можно передать в виде хэш-аргумента. |
| 18 | c.radio_button( name[, value[, checked=false]]) c.radio_button( options) Возвращает HTML-строку для определения радиополя. Атрибуты тега можно передать в виде хэш-аргумента. |
| 19 | c.radio_group( name, value...) c.radio_group( options) Возвращает HTML-строку для определения группы радиокнопок. Атрибуты тега можно передать в виде хэш-аргумента. |
| 20 | c.reset( name[, value]) c.reset( options) Возвращает HTML-строку для определения кнопки сброса. Атрибуты тега можно передать в виде хэш-аргумента. |
| 21 | c.text_field( name[, value[, size=40[, max]]]) c.text_field( options) Возвращает HTML-строку для определения текстового поля. Атрибуты тега можно передать в виде хэш-аргумента. |
| 22 | c.textarea( name[, cols=70[, rows=10]]) { ...} c.textarea( options) { ...} Возвращает HTML-строку для определения поля textarea. Если указан блок, строка, выведенная блоком, будет использована как содержимое textarea. Атрибуты тега можно передать в виде хэш-аргумента. |
Методы генерации HTML
Вы можете использовать соответствующие имена HTML-тегов в экземпляре CGI для создания HTML-тегов, как показано в следующем примере:
Пример
#!/usr/bin/ruby
require "cgi"
cgi = CGI.new("html4")
cgi.out{
cgi.html{
cgi.head{ "\n"+cgi.title{"Это тест"} } +
cgi.body{ "\n"+
cgi.form{"\n"+
cgi.hr +
cgi.h1 { "Форма: " } + "\n"+
cgi.textarea("get_text") +"\n"+
cgi.br +
cgi.submit
}
}
}
}
Атрибуты объекта CGI
В экземпляре CGI можно использовать следующие атрибуты:
| Attribute | Возвращаемое значение |
|---|---|
| accept | Допустимые MIME-типы |
| accept_charset | Допустимые наборы символов |
| accept_encoding | Допустимые кодировки |
| accept_language | Допустимые языки |
| auth_type | Допустимые типы |
| raw_cookie | Данные cookie (необработанная строка) |
| content_length | Длина содержимого |
| content_type | Тип содержимого |
| From | Адрес электронной почты клиента |
| gateway_interface | Версия CGI |
| path_info | Путь |
| path_translated | Преобразованный путь |
| Query_string | Строка запроса |
| referer | Ранее посещённый URL |
| remote_addr | Адрес хоста клиента (IP) |
| remote_host | Имя хоста клиента |
| remote_ident | Имя клиента |
| remote_user | Аутентифицированный пользователь |
| request_method | Метод запроса (GET, POST и т. д.) |
| script_name | Имена параметров |
| server_name | Имя сервера |
| server_port | Порт сервера |
| server_protocol | Протокол сервера |
| server_software | Программное обеспечение сервера |
| user_agent | Агент пользователя |