プロが教える店舗&オフィスのセキュリティ対策術

有料サーバーを借りているのですが、最近、パフォーマンスが悪く表示に時間がかかります。エラーログを見てみると、意味はわからないのですが、
defined(%hash) is deprecated at ../jcode.pl line 544
というのが出ています。
ネット検索すると、jcode が古いものらしくて、jacode.pl に置き換えないといけない、というページが見つかりました。
まだ作業はやってないのですが、jacode.pl に変更したら、問題は解決するのでしょうか? 余計なことをやってますます悪くなると困るので、どうしようか、迷っています。なお、サーバーに問い合わせたのですが、cgi のことはサポート対象外らしく、教えてくれませんでした。

A 回答 (1件)

エラーコードからわかることは、


「defined関数でハッシュの値の有無を調べている部分があるが、非推奨になったので使わないでくれ」ってことです。
jcode.plの544行目にそのようなコードがあるんだと思います。

レンタルサーバーなので、jcode.plを修正することはできないと思います。
そのため、対策として思いつくのは以下になります。
1.古いperlを使うようにソースコードを修正する
  ※有料サーバーが古いバージョンのperlにも対応している場合のみできる
2.jacode.plを呼び出すようにソースコードを修正する
  ※ソースコード内の[jcode.pl]をすべて[jacode.pl]に置き換える
  ※レンタルサーバーにjacode.plがインストールされていないとできない
3.jcode.plを呼び出さないようにソースコードを修正する。
  (エンコードやデコードをしているソースコードを、自前の関数などに置き換える)

余計なことをやって悪くならないように、修正前のファイルのバックアップを取ってはいかがでしょうか。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。
サクラというレンタルサーバーを使っているのですが、jcode.pl は自分で設置したものです。たぶん、jacode.pl もアップすることができ、それへのパスも変更できるので、2を試してみます。もちろん、バックアップはとってから。

お礼日時:2021/12/07 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!