質問: Googleアドセンスがページ内に貼ってある簡単なPERLのプログラムを動作(フォーム送信)させると、プログラム自体が複数回(2〜3度)呼び出されているようです。 複数回呼び出されることは、同じプログラム内にでファイルへの書き込み記録で確認しています。 上のような「複数回呼び出し」の現象はアドセンスを削除すると発生しないことも確認しています。 このような複数回呼び出しの現象の原因、またアドセンスを削除する以外の回避方法をご教示下さい。 尚、同様の現象はPHPでも確認しています。また、端末はPC,IE6です。サーバーはLINUXで海外のレンタルサーバーでも@niftyでも同様の現象が生じることを確認しています。 ソースはこちらです()
回答: ローカルサーバでテストしてみたところ、英語は通りましたが、日本語だと、Undefined subroutine &jcode::f called at jcode.pl line 400 のようになりました。 調べてみると、 &jcode’convert(*value, ’EUC-JP’); #’; の部分が正しくないように思います。 メタタグなどではEUC-JPでしょうし、PHPのmb_convert_encodingなどでもEUC-JPを引数に使えるでしょうが、これはjcode.plですので、jcode.plにあった引数の形でないと動きませんよね。単なるコピー&ペーストミスの可能性も高いとも思いますが・・・。 &jcode’convert(*value, ’euc’); #’; にして、再度テストしました。エラーログは出なくなりました。また、test.txt及びword.txtが正常に作成され、複数回呼び出されている現象は起きませんでした。 もし、jcode.plに関するサブルーチン呼び出しに関する行を修正されても、同様な現象が発生するようであれば、もう少し詳しく再現方法を教えてください。当方は、「あいうえお」などを入力後、送信ボタンをクリックし、getでデータ送信し、test.cgi?q=%A4%A2%A4%A4%A4%A6%A4%A8%A4%AAなるURLにアクセスしています。