このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

guestMail.acgi(NE版)がredirectしない

発言者:柾木博行
( Date Tuesday, June 10, 1997 14:43:22 )


みなさん、こんにちわ。
1カ月ほど前、「guestMail.acgi(NE版)が動かない」ということで皆さんにお世話になった
ばかりですが、またguestMail.acgi(NE版)で問題が出てきました。
前回みなさんにお知恵を拝借して、問題なく動いているかのように見えたのですが、実は
フォームに未記入の部分があると、未記入を警告する画面に飛ぶように設定したスクリプトが
まったく無視されているのです。具体的には、

    --- 記入ミスのためのスクリプト群
    if guestname = "" or guestzipcode = "" or guestaddress = "" then
      return redirect_header & "nosubmit.html" & crlf & crlf
    end if
    if guestmailadress = "" or guestage = "" then
      return redirect_header & "nosubmit.html" & crlf & crlf
    if guestquiz_1 = "ICELAND" and guestquiz_2 = "800" and guestquiz_3 = "30days" then
      set guestresult to "全問正解"
    end if

というスクリプトなのですが、この"nosubmit.html"へリダイレクトする部分がまったく
反応しません。そして、その下の、set guestresult to "全問正解"にする部分は動いています。
if then の部分は問題ないということです。念のため、同様の処理を行っているスクリプトについて
すべてチェックしましたが、NetEventsを利用したスクリプトではすべて同じトラブルが起きています。

問題の原因などがお分かりになる方がいらっしゃいましたら、ご指摘下さい。よろしくお願いします。

田中求之 さんからのコメント
( Tuesday, June 10, 1997 16:17:46 )

全く反応しないというのは、具体的にはどのようになるのでしょうか?
記入が行われなかった場合にどうなりますか?


えっと、まず、もともとの guestMail.acgi.(NE).txt にはバグがあって
未記入のときにリダイレクトする部分のスクリプトが

    if guestName = "" or myBody = "" then
      --- 記入ミス
      return & redirect_header & "guestmsg.html" & crlf & crlf
    end if

になってますが、これは

    if guestName = "" or myBody = "" then
      --- 記入ミス
      return redirect_header & "guestmsg.html" & crlf & crlf
    end if

の誤りです(return の後に余分な & が入っている)。この点は大丈夫でしたよね?

あとは、ブラウザによっては、このヘッダーではうまく動かないときがあります(ブラウザ
は何を使っていますか?)。以下のように、ホストを含んだ URL に書き換えてみてください。

    if guestName = "" or myBody = "" then
      --- 記入ミス
      return redirect_header & "http://your.host/guestmsg.html" & crlf & crlf
    end if


柾木博行 さんからのコメント
( Tuesday, June 10, 1997 21:56:25 )

こんばんわ、田中先生。

問題の件は、ご指摘の通り、オリジナルのスクリプトのバグをそのままに使用している
部分がありました。どうして一部だけ正しい形になっていたのかなぞです。
おそらく、前のTCP/IP ScriptingAddition用のスクリプトと、いろいろやっている
うちに、部分的に元に戻ってしまったようです。

大変お騒がせして申し訳ありませんでした。ありがとうございました。

田中求之 さんからのコメント
( Wednesday, June 11, 1997 13:23:01 )

いえいえ、ようするに私のスクリプトにバグが残っているのが悪いのですから。

なにはともあれ、うまく動いてよかったです。