CGI
CGI の設置方法
ディレクトリは /home/yot/public_html/test_cgi とする.
下の内容の .htaccess を作成
AddType application/x-httpd-cgi .cgi
下の内容の test1.cgi を作成
#!/usr/bin/ruby print "Content-type: text/html; charset=utf8\n" print "\n" print "<html>\n" print "<head>\n" print "<title>テスト</title>\n" print "</head>\n" print "<body>\n" print "これはCGIのテストです。\n" print "</body>\n" print "</html>\n"
あるいは, 下の内容の test1.cgi を作成
"<<" は「ヒアドキュメント」
#!/usr/bin/ruby # coding: utf-8 print <<~EOD Content-type: text/html; charset=utf8 <!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>テスト</title> </head> <body> これはCGIのテストです。 </body> </html> EOD
注意
Content-type: text/html; charset=utf8
の次の空行は重要らしい.
- test1.cgi のパーミッションを 755 に変更.
httpd.conf (/usr/local/apache2/conf/httpd.conf) に以下を追記.
<Directory "/home/yot/public_html/test_cgi"> Options +ExecCGI </Directory>
参考ページ
form を使う & ruby で入力を受け取る
下の内容の test2.html を作成
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>テスト</title> </head> <body> これは form のテストです。 <form action="./test2.cgi" method="get"> Value: <select name="value"> <option value="x">x value</option> <option value="y">y value</option> </select> <br> 名前: <input type="text" name="name"> <br> <input type="submit" value="送信"> </form> </body> </html>
下の内容の test2.cgi を作成
#!/usr/bin/ruby # coding: utf-8 require "cgi" input = CGI.new val = input[ "value" ] name = input[ "name" ] print "Content-type: text/html\n" print "\n" print "<html>\n" print "<head>\n" print "<title>Test page generated by cgi.</title>\n" print "</head>\n" print "<body>\n" print "input value = ", val, "\n" print "<br>\n" print "input name = ", name, "\n" print "<br>\n" print "</body>\n" print "</html>\n"
構造としては, test2.html の form タグで値を選択/入力し, それを test2.cgi に 渡す. test2.cgi では, cgi モジュールで渡された値を取り出す.
メモ
コンボボックス
- <URL:https://www.tagindex.com/html_tag/form/select.html>
- <URL:http://adlib.rsch.tuis.ac.jp/~akira/lect/webprog/form.html>