婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 用Ruby進行CGI編程的入門指引

用Ruby進行CGI編程的入門指引

熱門標簽:白銀外呼paas系統 徐州網絡外呼系統哪個好 常德電銷平臺外呼系統軟件價格 湖州u友防封電銷卡 高德地圖標注客服 地圖標注賺錢項目注冊 電銷機器人廠商代理 滴滴外呼系統 百度地圖標注自定義圖片

編寫CGI腳本:

最基本的Ruby CGI腳本看起來像這樣:

#!/usr/bin/ruby

puts "HTTP/1.0 200 OK"
puts "Content-type: text/html\n\n"
puts "html>body>This is a test/body>/html>"

如果調用這個腳本 test.cgi 上傳到基于Unix/Linux的Web托管服務提供商并具有合適的權限,那么可以將它作為一個CGI腳本使用。

例如,如果有一個Linux的Web托管服務提供商托管的網站,如:http://www.yiibai.com/test.cgi 的主目錄,并給它執行權限,那么訪問 http://www.yiibai.com/test.cgi 應該返回一個HTML頁面顯示:This is a test.

這里時當 test.cgi 從Web瀏覽器請求,Web服務器看執行使用Ruby解釋器它。 Ruby腳本返回一個基本的HTTP頭,然后返回一個基本的HTML文檔。
使用 cgi.rb:

Ruby有一個特殊的稱為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類使可以訪問HTML查詢參數有兩種方法。假設我們給出 /cgi-bin/test.cgi?FirstName=ZaraLastName=Ali.

可以訪問參數FirstName和LastName使用CGI#[]如下:

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

如果表單包含多個具有相同名稱的字段,對應的值將被返回到腳本中為一個數組。[]存取器返回這些的只是第一個。

在這個例子中,假設名為“name”的表單有三個字段,我們輸入了三個名字 "Zara", "Huma" and "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"]}

注:Ruby的會自動處理GET和POST方法。沒有單獨的處理這兩種不同的方法。

一個相關的,但基本形式,可以發送正確的數據,將有HTML代碼,就像這樣:

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。會發現每個標簽的方法之一。為了使這些方法,必須通過調用CGI.new創建一個CGI對象。

為了使標簽更容易嵌套,這些方法拿自己的內容作為代碼塊。代碼塊返回一個字符串,這將在作為標簽的內容。例如:

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

注:CGI類的方法可以接受的方法參數,這將設置HTTP方法(GET,POST等)上使用的表單提交。缺省情況下,在這個例子中使用的是POST。

這將產生以下結果:

Content-Type: text/html
Content-Length: 302
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//EN">
HTML>
HEAD>
TITLE>This Is a Test/TITLE>
/HEAD>
BODY>
FORM METHOD="post" ENCTYPE="application/x-www-form-urlencoded">
HR>
H1>A Form: /H1>
TEXTAREA COLS="70" NAME="get_text" ROWS="10">/TEXTAREA>
BR>
INPUT TYPE="submit">
/FORM>
/BODY>
/HTML>

引用字符串:

當處理URL和HTML代碼,您必須謹慎地引用一些字符。例如,一個斜杠字符(/)在URL中具有特殊的意義,所以它必須被轉義,如果它不是部分路徑名。

例如,/查詢URL部分將被翻譯成字符串%2F/,使用它時必須翻譯。空間和與符號特殊字符。為了處理這個問題,CGI提供:在例行程序 CGI.escape 和 CGI.unescape.

#!/usr/bin/ruby

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

這將產生以下結果:

Zara+Ali%2FA Sweet+%26+Sour+Girl")

#!/usr/bin/ruby

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

這將產生以下結果:

lt;h1gt;Zara Ali/A Sweet  Sour Girllt;/h1gt;'

您可能感興趣的文章:
  • 如何用C寫一個web服務器之GCC項目編譯
  • 如何用C寫一個web服務器之I/O多路復用
  • 如何用C寫一個web服務器之基礎功能
  • 基于Python_腳本CGI、特點、應用、開發環境(詳解)
  • 編寫Python CGI腳本的教程
  • perl的cgi高級編程介紹
  • 如何用C寫一個web服務器之CGI協議

標簽:三沙 梧州 永州 荊門 張家界 遼寧 公主嶺 普洱

巨人網絡通訊聲明:本文標題《用Ruby進行CGI編程的入門指引》,本文關鍵詞  用,Ruby,進行,CGI,編程,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用Ruby進行CGI編程的入門指引》相關的同類信息!
  • 本頁收集關于用Ruby進行CGI編程的入門指引的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 双桥区| 河西区| 百色市| 松潘县| 北安市| 南雄市| 张家川| 环江| 高阳县| 苏尼特左旗| 朝阳县| 嘉义市| 双牌县| 武强县| 霍林郭勒市| 饶阳县| 肃北| 辽源市| 阳原县| 乐安县| 松江区| 房山区| 阜城县| 长海县| 壤塘县| 荔浦县| 阜城县| 武穴市| 方山县| 平凉市| 永新县| 即墨市| 乐业县| 布尔津县| 类乌齐县| 阿拉善左旗| 苗栗县| 尼木县| 洛川县| 通河县| 大兴区|