Ruby/CGI/CGI Form
Материал из Wiki.crossplatform.ru
(Различия между версиями)
Версия 17:10, 26 мая 2010
Содержание |
Create a Page in HTML for Accepting the Customer Information
<HTML> <Head> <Title>Form Data</Title> </Head> <Body bgcolor=yellow> <Pre> <Center><H1><u>Form Data </u></H1></Center> <b><Form name=" frm1" action=" cgi_action.rb"> Name <input type=text name=" Name"> Age <input type=text name=" Age"> Address <input type=textarea name=" Address"> Sex M <Input type=radio name=" Sex"> F <Input type=radio name=" Sex"> E-mail address <input type=text name=" E-mail"> <Input type=" submit" Name=" Submit" value=" SUBMIT"> </b></Form></Pre> </Body> </HTML> Create a CGI Script that Will Display the Form Values #! /ruby/bin/ruby require "cgi" print "Content-type: text/html\r\n\r\n" cgi=CGI.new print "Name = " print cgi[?Name"] print "<br>" print "<br>" print "Age = " print cgi[?Age"] print "<br>" print "<br>" print "Address = " print cgi[?Address"] print "<br>" print "<br>" print "Sex = " print cgi[?Sex"] print "<br>" print "<br>" print "E-mail Address = " print cgi[?E-mail"]
Get value from a form
<html> <head><title>Test Form</title></head> <body> I like Ruby because: <form target="cgibin/survey.rb"> <input type="checkbox" name="reason" value="flexible" /> It"s flexible<br /> <input type="checkbox" name="reason" value="transparent" /> It"s transparent<br /> <input type="checkbox" name="reason" value="perlish" /> It"s like Perl<br /> <input type="checkbox" name="reason" value="fun" /> It"s fun <p> Your name: <input type="text" name="name"> </p> <input type="submit"/> </form> </body> </html> # survey.rb require "cgi" cgi = CGI.new cgi["name"] cgi["reason"]
Is name set in cgi
<html> <head><title>Test Form</title></head> <body> I like Ruby because: <form target="cgibin/survey.rb"> <input type="checkbox" name="reason" value="flexible" /> It"s flexible<br /> <input type="checkbox" name="reason" value="transparent" /> It"s transparent<br /> <input type="checkbox" name="reason" value="perlish" /> It"s like Perl<br /> <input type="checkbox" name="reason" value="fun" /> It"s fun <p> Your name: <input type="text" name="name"> </p> <input type="submit"/> </form> </body> </html> # survey.rb require "cgi" cgi = CGI.new cgi.has_key?("name") # true cgi.has_key?("age") # false
Pass value from a form to CGI scropt
#!/usr/bin/ruby require "cgi" cgi = CGI.new from = cgi["from"].to_i to = cgi["to"].to_i number = rand(to-from+1) + from puts cgi.header puts "<html><body>#{number}</body></html>" An associated, but basic, form that could send the correct data would have HTML: <form method="POST" action="http://www.example.ru/test.cgi"> For a number between <input type="text" name="from" value="" /> and <input type="text" name="to" value="" /> <input type="submit" value="Click here!" /> </form>
Post a message
require "message" def do_post_page(cgi) mstore = get_message_store user = get_session(cgi)["user"] num = cgi["id"][0] message = mstore.get_message(num.to_i) template = get_template template.gsub!(/%%HEADER%%/, header(cgi)) template.gsub!(/%%USER%%/, user) cgi.out{ template } end def get_template "<HTML><BODY> %%HEADER%% <FORM ACTION=\"/cgi-bin/rb/board.cgi\" METHOD=\"GET\"> <INPUT TYPE=HIDDEN NAME=cmd VALUE=savepost> <INPUT TYPE=HIDDEN NAME=SENDER VALUE=%%USER%%> <TABLE BORDER=0> <TR> <TD>Title:</TD><TD><INPUT TYPE=TEXT NAME=TITLE></TD> </TR> <TR> <TD>Message Body:</TD> <TD> <TEXTAREA rows=25 cols=80 NAME=BODY> </TEXTAREA></TD> <TR><TD><INPUT TYPE=SUBMIT NAME=SUBMIT></TD><TD></TD></TR> </TR> </TABLE> </FORM> </BODY></HTML>" end