□ ゆき [2004年02月22日00時44分]はじめますて。お誕生日CGIを設置したくて、設定アップをし、http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi表示したいページに<script src="./birthday/birthday.cgi"></script>を貼り付けましたが表示されません。# 管理者モードログイン時のパスワードの設定(半角英数で文字数に制限はありません)$pass = "birthday";# このファイルのURLをフルパスで記述$script = "http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi";# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui";# 記録ファイルの設置ディレクトリの位置と名前# このファイルから見た位置(基本ディレクトリ構成の通りならこのまま)$dir = "./";# データ記録ファイルの名前$file = "data.cgi";この設定で間違えていますか?何方かアドバイス宜しくお願い致します。 □ NXer [2004年02月22日13時24分]はじめまして。NXerです。よろしく。ご質問その1)>この設定で間違えていますか? ------------------------------------------------■aoisora_aoiumiさん# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui";□# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui.html";-----↑で見せていただきました。自己解決ですか。「ページのURL」という用語から、ページつまり、hmtl言語で記述されたウェブページのアドレス。拡張子は.htmlです。無い場合は、認識してくれないのでしょうか。その2)文字化けについて >http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi?mode=viewのメッセージ中に、文字化けの不具合が指摘されています。Shift-JISの日本語コードが抱える厄介な問題です。しかし修正は簡単。行番号は、その付近を見てください。....は表の崩れを防ぐもので意味はありません。行番号.........元.....................変更後 204....$FORM{'msg'} =~ s/\\//g; → #$FORM{'msg'} =~ s/\\//g 471....$line =~ s/\\//g; → #$line =~ s/\\//g; -------------------------------------------------------------登録後に、名前やメッセージに次の文字が含まれると文字化けが発生します。カタカナの「ソ」アルファベットの「B」「C]、漢字の「圭、構、能、表、予、噂、爆、、、」などです。この不具合を解消するには上の2行を無効にする#記号を前につけるだけです。以下は時間のあるときお読みください。------------------------理由は、これらのシフトJISの漢字2バイト目に、5c(\)というperlのエスケープ記号が含まれているため、cgiでは取り除かれてしまいます。~s/A/B/とは、置換関数でAをBに変えるものです。この関数が次のように働いています。 $FORM{'msg'} =~ s/\\//g;\\を取り除くもの。実行すると2バイト目の\も取り除くことになります。無効にすると、perlは、前の\で後の\をエスケープ記号ではなく(5c)という漢字コードと認識します。これで正しく表示されると思います。変更とその理由を以上のように考えました。お試しください。なお、スクリプトを直接編集するため、元ファイルや、元データは念のため、バックアップをとるなどしてください。 一定時間書込が無かったので過去ログに移りました
はじめますて。お誕生日CGIを設置したくて、設定アップをし、http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi表示したいページに<script src="./birthday/birthday.cgi"></script>を貼り付けましたが表示されません。# 管理者モードログイン時のパスワードの設定(半角英数で文字数に制限はありません)$pass = "birthday";# このファイルのURLをフルパスで記述$script = "http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi";# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui";# 記録ファイルの設置ディレクトリの位置と名前# このファイルから見た位置(基本ディレクトリ構成の通りならこのまま)$dir = "./";# データ記録ファイルの名前$file = "data.cgi";この設定で間違えていますか?何方かアドバイス宜しくお願い致します。
はじめまして。NXerです。よろしく。ご質問その1)>この設定で間違えていますか? ------------------------------------------------■aoisora_aoiumiさん# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui";□# 今月の誕生日リストを表示するページのURLをフルパスで記述$base = "http://www12.plala.or.jp/aoisora_aoiumi/ruirui.html";-----↑で見せていただきました。自己解決ですか。「ページのURL」という用語から、ページつまり、hmtl言語で記述されたウェブページのアドレス。拡張子は.htmlです。無い場合は、認識してくれないのでしょうか。その2)文字化けについて >http://cgi36.plala.or.jp/aoisora_/birthday/birthday.cgi?mode=viewのメッセージ中に、文字化けの不具合が指摘されています。Shift-JISの日本語コードが抱える厄介な問題です。しかし修正は簡単。行番号は、その付近を見てください。....は表の崩れを防ぐもので意味はありません。行番号.........元.....................変更後 204....$FORM{'msg'} =~ s/\\//g; → #$FORM{'msg'} =~ s/\\//g 471....$line =~ s/\\//g; → #$line =~ s/\\//g; -------------------------------------------------------------登録後に、名前やメッセージに次の文字が含まれると文字化けが発生します。カタカナの「ソ」アルファベットの「B」「C]、漢字の「圭、構、能、表、予、噂、爆、、、」などです。この不具合を解消するには上の2行を無効にする#記号を前につけるだけです。以下は時間のあるときお読みください。------------------------理由は、これらのシフトJISの漢字2バイト目に、5c(\)というperlのエスケープ記号が含まれているため、cgiでは取り除かれてしまいます。~s/A/B/とは、置換関数でAをBに変えるものです。この関数が次のように働いています。 $FORM{'msg'} =~ s/\\//g;\\を取り除くもの。実行すると2バイト目の\も取り除くことになります。無効にすると、perlは、前の\で後の\をエスケープ記号ではなく(5c)という漢字コードと認識します。これで正しく表示されると思います。変更とその理由を以上のように考えました。お試しください。なお、スクリプトを直接編集するため、元ファイルや、元データは念のため、バックアップをとるなどしてください。