Windowsをお使いの方へ
ほとんどの方がWinをお使いだと思いますが、管理人はMacでスクリプトを開発しています。このOSの違いのため、エラーが発生するという報告を受けました。
それは「改行コードエラー」というものです。これを回避するためには、一度全てのファイルを開き(ログファイル、日本語コード変換ライブラリも含む)、改行コードを修正してからアップすると正常に動くようです。
もし既にjcode.plを入手している場合は、それを使われた方が良いかもしれません。
具体的な改善策として、テキストエディタ等でMacの改行コード「CR」からWinの改行コードである「CR+LF」に変換すると、エラーを回避することが出来ると思います。
ただ、管理人はWinを持っていないので、確認が出来ていません。この方法は間違っている、またはもっと効率のよいやり方をご存知の方はお手数ですがご一報下さい。
なお、この改行コードというものは<br>のことではなく、Enterを押すと自動的に挿入されるもので、実際は見えません。チェッカー等の使用も含め、正しくアップしたにも関わらず500エラーが発生する場合は、上記のことを試してみて下さい。
実は、この逆の場合(Winで開発したものをMacで編集する)では全くこういう事が起きなかったため、私の方も原因が判りませんでした。
わざわざメールで報告をして下さったユーザー様、本当に有り難うございました。助かりました。現在、zip形式でリリースしているスクリプトは予め改行コードをwinに合わせてありますので、こちらに関しては、エラーはないと思われます。
WinとMacの差異によるバグやエラーについての情報は随時受け付けております。但し、必ずしも対処、改善が出来るとは限りません(当方としても出来る限りの努力はするつもりではいますが)。ご了承下さい。
Internal Server Error(500)
汎用エラーと呼ばれるもので、これだけではエラーの内容は確定出来ません。ですが、大抵の場合は、以下の事が考えられます。
Perlのパスが間違っている
CGIが設置出来るプロバイダーなら設置についての注意事項があるはずです。そこをきちんとチェックして、正しいパスを設定して下さい。どうしても判らない場合は、メール等でプロバイダーに教えて頂きましょう。転送モードがアスキーモード(テキストモード)にしていない
バイナリモードでアップすると改行コードエラーが発生します。正しいモードでアップして下さい。改造した時の誤字脱字、文法ミス
初期設定以外の所を変更してそれが間違っていた場合にも、当然の事ながらエラーが発生します。
具体的には「"」「'」「;」を付け忘れたり「()」「{}」などのかっこを閉じ忘れなどが考えられます。
他にも、↓こういう記述をするとエラーが発生します。print "<font color="black">例題です</font>\n";
「"」で括った間にさらに「"」で括るとエラーになるのです。ではどうエラーを回避するかというと、「\(Perlでは円マークでなく、エスケープシーケンスといいます)」を使用します。
print "<font color=\"black\">例題です</font>\n";
このように記述すれば大丈夫です。実際、管理人もよく「\」を付け忘れます。その他
出力する(printと書かれている所の事)場所以外に全角スペースを入れると、エラーが発生します。
Forbidden(403)
パーミッションが間違っている場合、発生します。正しく直して下さい。
プロバイダーによってはパーミッションが完全に指定されている場合があります。確認して下さい。特に指定がなければこちらの指示通りにパーミッションを変更して下さい。パーミッションの算出方法については「設置について」で説明をしておりますので、そちらをご覧下さい。
File Not Found(404)
指定したURLが間違っている場合に発生します。ファイルがない、という事です。 プロバイダーによっては、CGIスクリプトは、普通のファイルとは違うサーバに設置する場合もあるようなので、一度確認して下さい。
また、CGIスクリプトを格納する場所が指定されている・・・具体的に例を上げますと「cgi-bin」というフォルダを各自で作成し、そこに設置する、等の条件がある場合は、当然の事ながらその通りにしないと動きません。
文字化け
当サイトのスクリプトは、日本語コードはシフトJISを採用しています。詳しい説明は割愛させて頂きますが、このため文字化けが生じることがあります。
具体的な例を上げますと、「表」「申」「ソ」等があります。回避する方法としては「\(エスケープシーケンス)」を使います。
使い方は、「表\」という風に記述します。上記の理由とはまた別の問題で、@が表示されない場合もあります。この時は「\@」このように記述すればきちんと表示されます。
その他のエラー
ファイルロックエラー
アクセスが同じ時間に集中していると出やすくなります。その時はロックファイルの設定を外して下さい。ロック用フォルダのパーミッションが間違っている場合のエラーがでます。でも、この場合は403エラーが出る・・・と思います(多分)。ファイルオープンエラー記録用ファイルが正しくアップされていない、本体ファイルの初期設定にある「記録ファイルの名称」と実際にアップした記録ファイルの名称と合っていない、記録ファイルのパーミッションが間違っている・・・等でエラーが出ます。