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

easyBBSなどでBGBOLORを指定するには?

発言者:柾木 博行
( Date Thursday, September 19, 1996 16:33:05 )


Mac Mailing listでもお世話になっています柾木です。
AppleScriptのことはあまりよく分からないのにTanaka's CGI Kitのスクリプトを
カスタマイズしようとしていろいろトラブルに頭を悩ませております。
ひとつはeasyBBSやguestMailをカスタマイズして、redirectするページに
BGBOLORを指定しようとしていますが、うまくいきません。

とりあえずguestMailを使ったスクリプトは現状で以下のようになっています。

    http_10_header&“<TITLE>MESSAGE RECIEVED<//TITLE>”&crlf〜
      &“<BLOCKQUOTE><h2>アンケートにお答えいただきありがとうございます<//h2>”&crlf〜
      &“本日はありがとうございました。<//BLOCKQUOTE><p>”を返す

これにBGBOLORを指定するのと最後に1行トップページに戻るというのを付けた
いのですが、次のようにやってみると構文チェックでエラーが出てしまいます。

    http_10_header&“<TITLE>MESSAGE RECIEVED<//TITLE>”&crlf〜
      &“<body text=\"#000000\" bgcolor=\"#FFFFCC\" link=\"#502030\" vlink=\"#012345\" alink=\"#FFFFFF\">”&crlf〜
      &“<BLOCKQUOTE><h2>アンケートにお答えいただきありがとうございます<//h2>”&crlf〜
      &“本日はありがとうございました。<//BLOCKQUOTE><p>”&crlf〜&crlf〜
      &“←<a href=\"../index.html\">Top Pageへ戻る</a>”を返す

まず、BGBOLORの指定の“#”がひっかかるようで、BGBOLORのタグを消すと、トップページ
へ戻るためのリンクの部分で“.”がひっかかってきます。基本が分かってないから
かもしれませんが、全く同じBGBOLORを指定したeasyBBSではエラーが出ません。
解決策をご存じの方がいらっしゃいましたら、お知恵を貸して下さい。
宜しくお願いします。

田中求之 さんからのコメント
( Thursday, September 19, 1996 17:44:05 )

>次のようにやってみると構文チェックでエラーが出てしまいます。

スクリプト中にタグを埋め込むときには、" を \ でエスケープしてやらなければ
なりませんよね。このため、引用符のトラブルによるコンパイルミスって結構おき
ますね。私もしょっちゅうやってます (^_^;;

で、問題のヘッダーの部分は、以下のように書くとエラーが起きないはずです。

http_10_header & "<TITLE>MESSAGE RECIEVED</TITLE>" & crlf ツ
  & "<body text=\"#000000\" bgcolor=\"#FFFFCC\" link=\"#502030\" vlink=\"#012345\" alink=\"#FFFFFF\">" & crlf ツ
  & "<BLOCKQUOTE><h2>アンケートにお答えいただきありがとうございます</h2>" & crlf ツ
  & "本日はありがとうございました。</BLOCKQUOTE><p>" & crlf & crlf ツ
  & "←<a href=\"../index.html\">Top Pageへ戻る</a>"

これでエラーが出るのであれば、他の部分で " のミスがあるということになります。

柾木博行 さんからのコメント
( Thursday, September 19, 1996 21:11:42 )

田中先生、さっそくのRES、ありがとうございます。
ためしてみましたがやはりエラーが出てしまいます。
ただ、このヘッダー中からBGCOLORと最後のリンクの行をとってしまうと問題なく
動きますので、田中先生の指摘の「他の部分で " のミスがあるということになります。」
というのではない気がするのですが、どうでしょうか?

もうひとつ可能性があるとすれば、スクリプト中に書き込むメッセージの文章を
確認するために表現形式を日本語にしているという点でしょうか。英語形式で日本語の
メッセージなどを編集することが出来れば英語形式で編集するのですが。
なにかいい方法はありませんでしょうか?

田中求之 さんからのコメント
( Thursday, September 19, 1996 23:44:35 )

>もうひとつ可能性があるとすれば、スクリプト中に書き込むメッセージの文章を
>確認するために表現形式を日本語にしているという点でしょうか。

これについては、私は試したことがありませんので何とも言えないのですが、
先ほどのスクリプトは、私のエディタでコンパイルできたものをそのままコピー
していますので、問題はないはずです。それと、かつてテストしたときに、
英語表現と日本語表現の間で、完全な互換性(相互変換)は成り立ってい
ないことを確認しています。ですから、表現形式を切り替えるのはやめた
方がよいと思います。

英語の表現形式でも、メッセージの日本語を表示したり編集したりすることは
できますよ。

表現形式を変更するダイアログで、日本語のフォントを割り当てるだけです。
ただ、これだと新規入力のときに、スクリプトが入力しにくいですから、
Comments, Value, Reference の3つの項目に日本語のフォントを
割り当てておけばよいと思います。こうすれば、コンパイル後に確実に
日本語の確認ができます(入力時は変になりますが)。

私はこの3つに Osaka-等幅12pを割り当てて、あとは monaco 9p に
してます。

柾木@DDP さんからのコメント
( Saturday, September 21, 1996 17:43:29 )

田中先生のご指摘の通り、日本語表現を使っていたのが問題だったようです。
英語の表現形式で日本語のフォントを割り当てて、オリジナルの"guestMail"の
スクリプトからやり直してみたらすんなりと構文確認ができて、ちゃんとWeb上でも
BGCOLORの指定がされたredirectするページが作られるようになりました。

が、しかし、ここでさらに新たな問題が発覚してきたのです!
元の問題から離れてしまうのですが、"guestMail"の中で記入ミスに対して元の
フォームのページをredirectするスクリプトが入っていますが、あそこが全く動作
しない状態になっているのです。以下がその部分のスクリプトです。

    if guest_name = "" or guestaddress = "" or guestdaytime_phone = "" or guest_Email = "" then
      --- 記入ミス
      return & redirect_header & "guestmsg.html" & crlf & crlf
    end if

つまり、名前や電話番号、メールアドレスがひとつでも記入漏れがあると、再度
元のフォームのページをredirectするようにしたいのですが、上のスクリプトでは
項目の全てが記入されなくても記入ミスがないと判断されて新しいredirect用の
ページが表示されてしまいます。
ひょっとして、もとのスクリプトは項目が2つだけの場合のためのもので、3つ
以上だと別の形でないといけないのでしょうか?


柾木 博行 さんからのコメント
( Saturday, September 21, 1996 18:50:38 )

上のメッセージに追加です。一応、念のためにと田中先生の、オリジナルの
"guestMail"のスクリプトセットを動かして、フォームに何も記入しないで
サブミットしたら、やはり(?)ちゃんと記入されたときに表示される
redirectのページが出てきました。やはりどこかのスクリプトが間違っている
のでしょうね。

田中求之 さんからのコメント
( Saturday, September 21, 1996 20:09:45 )

すっげぇ、初歩的なミスを犯していました(なんで今まで気が付かなかったのだろう)

redirect を返す部分が

> return & redirect_header & "guestmsg.html" & crlf & crlf

になっていますが、これは

> return redirect_header & "guestmsg.html" & crlf & crlf

の誤りです。 return の後ろの & がいりません!
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

(構文としては意味をなすのでコンパイルのエラーにはならないのです)。


CGI Kit の EasyBBS 以外のものも、もう一度作りなおした方がいいかも
しれない (^_^;;

柾木 博行 さんからのコメント
( Monday, September 23, 1996 18:09:10 )

あ、そういうことでしたか。
今自宅なので、スクリプトを実際にいじっても、サーバー上でのチェックが出来ないのですが、
明日にでもスクリプトから & を取って、試してみようと思います。