home WINユーザーも、MACユーザーもこれなら出来る!?
CGI設置・アレンジ講座
Menu
1 はじめに
2 まずはダウンロード
3 次にエディットを
4 そしてアップロード
5 パーミッション設定
6 いよいよCGIアレンジ
7 トラブルの解決
8 Q&A
《Back To CGI Home》


AND OR
● 8 Q&A
■ 文字化けする その一
当サイトで配付しているのは殆どが、「Shift_jis」で記述されたスクリプトですので、 特定の文字で文字化けします。
例えば、「表示」という文字はヒアドキュメント文の中でも正しく、『表示』、されません。「表\示」と記述して下さい。
このように、後ろに「\」をいれる必要がある文字の例;

Ы?
■ 文字化けする そのニ
初期設定ファイルのファイルタイプが「Shift_jis」以外の日本語になっていると、動作は正常にしますが日本語のみが文字化けします。

これを避けるためには他のスクリプトファイルと同じようにアップロードする前にクリプトファイルの日本語モードを「Shift_jis」、改行モードを「LF」にして、いったん自分のパソコン上へ「新しい名前を付けて保存」します。

■ 画像が表示されない。
画像へのパスの記述が間違っている。
特にcgi-bin内の画像はブラウザで直接は表示されないサーバーもあります。
こういう場合は、かなり面倒な作業となりますが、スクリプト内のそれらの画像urlを設定し直さなくてはなりません。
ブラウザのソースを見ると実際どうなっているのかが推測できます。
■ スクリプトが全て改行無しの連続文章になる。
メモ帳などの簡易エディターでは正しく改行モードを判断できないので、 先に上げたお薦めエディターをご利用下さい。
■ アップすべきホルダーが見当たらない。
一応アーカイブに同封してあるのですが、「lock」「photo」などの空ホルダーは 圧縮形式と解凍ソフトの関係で削除されることがあります。 この様な必要なホルダーが見当たらない場合はサーバー上へ新規作成すればオッケーです。
■ 意味不明な文字や記号が表示される。
圧縮形式と解凍ソフトの関係で解凍時に余分な文字や記号がデータファイルに追加されることが有ります。 ほとんどのデータファイル(dat.cgiなど)は、空ファイルですのそのような文字や記号は削除してから テキストモードでアップロードして下さい。
■ メールが送信されない。
sendmailのパスが間違っています。詳しくは、プロバイダーの指示にしたがって設定して下さい。
■ 「別ページからの投稿は出来ません」とエラーがでる。
  1. 設置したメインスクリプトのurl($scripturl)の設定が間違っています。
  2. 複数設定できる場合など追加で「index.html」と設定しても「index.html」を省略してアクセスしたときに は違う「url」として判断されます。
  3. Norton Internet Securityでブラウザプライバシーを設定し、 リンク元のRefererを返さない状態でも、このエラーとなります。
  4. どうしてもエラーにかかるようでしたらエラーチェックを外してください。
■ アクセスは出来るけど、動作がおかしい。
  1. よく有ります!アップするときに「ホームページビルダー」等のHTMLソフトを使用 した場合にある程度は正常に動作することも有り、これが原因だと気が付かない事があります。
  2. スクリプトを設置したディレクトリーのパーミッションの設定により、「CGIは動くけどブラウザの表示がおかしい」 などの現象が起こることもあります。
■ 書込みが出来ない。
  1. ログファイルへのパス記述が正しくない。
  2. ログファイルのパーミッションが正しくない。
  3. ログファイルが正しくアップされていない。
  4. ログファイルを入れたディレクトリー、或いはファイルを出力するディレクトリーの パーミッションが正しくない。
  5. ニュースボード、フォンデュ、e-板、などで、アウトファイルindex.htmlをエディターでチェックしたりすると、 これで編集した事になってしまい(エディターの設定によります)、次のリニューアルでエラーになります。あくまでアウトファイルindex.htmlは、 スクリプトが作成するものですので、直接アウトファイルを編集、アップロード、は出来ません。
  6. ログ書き込み後のファイルアウトでエラーになると、 ログは書き込んだけどアウトファイルは作成されていない状況になります。 この場合は、前からある古いファイルアウトのindex.htmlなどを手作業で削除してからリニューアルして下さい。
■ 書込みは出きるけど、動作が重い。
ロックが連続エラーにかかり上手く動作していない可能性が有ります。
ロックディレクトリーのパーミッションが755などの時も上手く動作せず重くなることが有ります。
ロックのディレクトリー設定が例えば「空欄」などと正しく設定していない場合も連続エラーになるので 動作が重くなり得ます。
■ 解凍したけどファイルが足らない。
お使いの解凍ソフトによっては、0Kbのファイルは削除してしまうものがあります。 データファイルは0kbですので、消えた可能性もあります。
■ スクリプトを開こうとすると、メモリが足りません、というエラーが出る。
メモ帳などの簡易エディターで編集するのは危険です。前述のお薦めのソフトをご利用下さい。
■ 同じスクリプトを複数設置したい。

以下の点を注意して下さい。
  1. スクリプトの名前を変えるか、それぞれ別々のディレクトリーの中へ設置する。
  2. 名前を変更した場合、スクリプト内、初期設定部分、スキン、などスクリプト名が記述されているところも同じく変更して下さい。
  3. 当サイトのスクリプトでクッキー機能のあるものは、クッキーの名前を設定することが 出来ます。 この設定によりスクリプト別にクッキーを認識することが出来るようになります。
■ 掲示板へのいたずら迷惑書き込みや、海外からの英文スパム宣伝書き込みで困っている。
こちら こちら を参考にして下さい。
以下の方法が可能です。
  1. アクセス拒否リストにURLを追加する。
  2. 書き込み禁止ワードの設定
  3. 日本語のないメッセージは許可しない。
  4. 合い言葉システムを設定する。
対応していないスクリプトを編集するとき。

  • 日本語のないメッセージは許可しないとき、
    以下を、datacheckのサブルーチンへ追加する。

    #日本語のないメッセージは許可しない時1。
    my $japanese = 1;

    if ($japanese) {
    $mymsg = $msg;
    if ($mymsg !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) {
    push(@errors,"Yu R Spam! メッセージは日本語で!
    ");
    }
    }

  • 合い言葉システム設定例;ナビスの場合

    新規書き込みスクリプトの変数を追加設定する。
    $aikotoba = "$form{'aikotoba'}";

    データチェックサブルーチンに以下を追加する。
    if($aikotoba ne $myaikotoba){push(@errors,"投稿できません。<br>");}

    初期設定に合い言葉を設定する。
    $myaikotoba = "ハロー";

    スキン設定ファイルなどに合い言葉を記入するフォームを追加記述する。
    <tr>
    <td align=right nowrap><font size=2>合言葉</font></td>
    <td><input type="text" name="aikotoba" size="12"
    maxlength="200" value="" class=textarea><font size=2>「合言葉」 と記入してください。
    $showpass</font></td>
    </tr>

    フォーム説明文の「合言葉」のところには実際設定した合言葉を直接記入するか、
    「合言葉」の所に変数をそのまま$myaikotobaと記述して自動的に合い言葉を表示させるか、画像で合い言葉の文字を表示します。
    あるいは合言葉は別のページで教えます。
    $showpassは、ナビスの場合記述します。
■ クロンcronが上手く動作しない。

「メイズ」や「ざ・ショップ」等を定時に動作させるのにサーバー機能のクロンを利用する事が出来ます。
  • クロンファイル(拡張子をshにしたテキストファイル)や、クロン設定にはフルパスを記述するのであらかじめこれを調べておきます。
  • クロンで動作させるCGIスクリプトに記述する相対パスは、全てをサーバーのトップページからのパスに書き直す必要が有ります。
  • 設定例;
    1. クロンファイルの設置
      まずサーバーが理解出来る内容が書かれたクロンファイルに、動作させたいCGIを指示する記述をし、例えば動作させたいスクリプト近くのサーバーディレクトリーにアップロードします。

      ex;
      設置ファイル名;renew.sh
      パーミッション;755
      記述内容例;

      #!/bin/sh
      cd /home/its-market/public_html
      ./renew.cgi

    2. 動作させたいCGI ex;renew.cgi の設置。
    3. サーバーでの設定
      サーバーの指示に従ってクロンの設定をします。

      記述内容例

      2,17,32,47 * * * * /home/its-market/public_html/kantan-web/renew.sh
      毎時2,17,32,47分に動作
■ どうしても問題が解決しない。バグではないか?

当サイトの配布しているスクリプトについての「質問」「バグ報告」等はサポート掲示板で伺っております。

《サポート掲示板へGO!》


Copyright (C) p.ink All Rights Reserved.