2

给定以下示例 html 表单:

<html> 
  <head> 
    <title>Sure wish I understood this. :)</title> 
  </head> 
  <body>
    <p>Enter your data:</p>
      <form method="POST" action="bar.rb" name="form_of_doom"> 
        <input type="text" name="data">
        <input type="submit" name="Submit" value="Submit"> 
      </form> 
  </body> 
</html>

“bar.rb”将提交写入服务器上的文本文件会是什么样子?我正在运行 apache,但我试图避免使用数据库和 rails。

4

1 回答 1

1

作为 Web 请求的结果,您需要某种方式来调用 Ruby 文件,并将所有表单数据传递给脚本。

看起来您可以通过将 Ruby 脚本视为 CGI来使用 Apache 来做到这一点。报价:

DocumentRoot /home/ceriak/ruby

<Directory /home/ceriak/ruby>
    Options +ExecCGI
    AddHandler cgi-script .rb
</Directory>

此时,您可以使用 Ruby 附带的CGI 库来处理参数:

#!/usr/bin/ruby -w                                                                                                           

# Get the form data
require 'cgi'
cgi = CGI.new
form_text = cgi['text']

# Append to the file
path = "/var/tmp/some.txt"
File.open(path,"a"){ |file| file.puts(form_text) }

# Send the HTML response
puts cgi.header  # content type 'text/html'
puts "<html><head><title>Doom!</title></head><body>"
puts "<h1>File Written</h1>"
puts "<p>I wrote #{path.inspect} with the contents:</p>"
puts "<pre>#{form_text.inspect}</pre>"
puts "</body></html>"
于 2013-06-03T03:52:49.250 回答