• ベストアンサー
  • 困ってます

if文を入れるとcgiが動きません。【Ruby】

  • 質問No.1019074
  • 閲覧数82
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 41% (79/190)

下記のプログラムは正常動作します。
#部、name1に文字列が入っていたら動作するプログラムを
追加すると、ブラウザが白紙になります。エラーなしです。
間違いを教えてください。このファイルはhoge.cgiです。

#!/usr/bin/ruby
print "Content-type: text/html\n\n"
require "cgi-lib"
input = CGI.new

#if name1
#print "name is ", name1
#end

print <<-"EOB"

<form method="POST" action="./hoge.cgi">
name<input type="text" name="name1" size="10">
<input type="submit" value="send">
</form>
</body>
</html>
EOB

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 48% (15/31)

フォームからのデータを取得したいのでしたら以下のようにすれば動くと思います。

input = CGI.new
name1 = input['name1'] ←これを追加
if name1

動作確認はしていませんが多分大丈夫だと思います。
お礼コメント
apache6

お礼率 41% (79/190)

無事、動作することを確認いたしました。
ありがとうございました。
投稿日時:2004/09/28 03:40

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 48% (15/31)

参考URLをのせるのを忘れてました。

動かないようでしたら参考にしてみて下さい。
  • 回答No.1

ベストアンサー率 48% (15/31)

name1の定義がないからではないでしょうか?

「#if name1」の前に「name1 = ""」とか適当に何か代入して試してください。
補足コメント
apache6

お礼率 41% (79/190)

早速やってみました。
action="./hoge.cgiで再読込する際、
name1に入っている文字列が""になってしまいます。
name is は表示されるようになりました。

name1=nilとすることによってtextボックスは
表示されるようになりました。この場合、
何を入力してもprint文は実行されません。
投稿日時:2004/09/27 20:03
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ