Perlのエラーについてご教授ください。初心者です。
CGIを別サーバに移したところ、Perlのバージョンが違うせいか以下のようなエラーがでました。
Use of uninitialized value in pattern match (m//)
エラー箇所は一部分で恐縮ですが、この部分です。
リファラーチェックで、3つ以外の参照元URLとパラメータの前方4文字だけチェックしています。
どう直せば良いのかわからず…ご教授ください。
unless ( $ENV {'HTTP_PEFERER'} =˜ /^(?:${referer1})¥?[a-z]{4]&_gl/
|| $ENV {'HTTP_PEFERER'} =˜ /^(?:${referer2})¥?[a-z]{4]&_gl/
|| $ENV {'HTTP_PEFERER'} =˜ /^(?:${referer3})¥?[a-z]{4]&_gl/ )
{
&error( '参照元が違います' . $ENV{'HTTP_PEFERER'} );
exit;
}
No.5ベストアンサー
- 回答日時:
>Use of uninitialized value $para in substr at 該当行〜
とでました…。
>でも動作は大丈夫そうで、このままエラー文を放置して良いのか悩んでいます。
前のエラーも含めてですが
use warnings;
を指定すると、これらのエラーが出るはずです。
use warnings;
をコメントアウトして、上記のエラーが出なければ、ワーニングなので
放置しても原則問題ありません。
前のエラーが出るのは、(Use of uninitialized valueがでるのは)
$ENV{'HTTP_REFERER'}が、いきなり出現した場合、
その$ENV{'HTTP_REFERER'}の内容が本当に正しいのか確認しなさい
という警告です。
ソース中に
$ENV={};
$ENV{'HTTP_REFERER'}="xxxxx"
のような箇所があれば、明らかに$ENV{'HTTP_REFERER'}の内容が担保されるので、この警告は出ません。
従って、$ENV{'HTTP_REFERER'}、$ENV{'QUERY_STRING'}に値が設定されていることが、明白なら、このエラーは無視して問題ないです。
(前のサーバーで動いていたなら問題ないと思いますが)
親切丁寧にご教授くださりありがとうございます!
use warnings;知りませんでした!
エラー内容の解説も助かりました!
エラーは無視してアップしてみます!本当に本当にありがとうございました!!!
No.4
- 回答日時:
>別の場所で同じエラーが発生したので、
>教えてもらったのを参考に修正してみます!
エラーが取れない場合は、再度質問してください。
ありがとうございます!!!なんてお優しい…。
上が解決したら、今度はここでエラーがでました…。
$para = $ENV{'QUERY_STRING'};
それで、同じようにQUERY_STRINGに置き換えてやってみたら、今度は$paraを使ったいるところで、
Use of uninitialized value $para in substr at 該当行〜
とでました…。
でも動作は大丈夫そうで、このままエラー文を放置して良いのか悩んでいます。
No.3
- 回答日時:
エラーをとるのが目的なら
if (defined($ENV) && exists($ENV{'HTTP_REFERER'})){ ・・・①
unless ( $ENV{'HTTP_REFERER'} =~ /^(?:${referer1})\?[a-z]{4}&_gl/
|| $ENV{'HTTP_REFERER'} =~ /^(?:${referer2})\?[a-z]{4}&_gl/
|| $ENV{'HTTP_REFERER'} =~ /^(?:${referer3})\?[a-z]{4}&_gl/ )
{
&error( '参照元が違います' . $ENV{'HTTP_REFERER'} );
exit;
}
} ・・・②
でOKかと思います。
①と②を追加します。
ありがとうございます!
教えて頂いた箇所はエラーが出なくなりました!
しかし、別の場所で同じエラーが発生したので、
教えてもらったのを参考に修正してみます!ありがとうございます!!!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
UserForm1.Showでエラーになり...
-
【VBAエラー】Nextに対するFor...
-
文字列内で括弧を使うには
-
エクセルVBA For~Nextについて...
-
Excel実行時エラー[80004005]に...
-
ACCESSで値を代入できないとは?
-
ApplicationとWorksheetFunctio...
-
VBA GoTo Error 処理が上手くい...
-
VBA Find でオートメーションエ...
-
Maximaでのエラーメッセージ
-
unityの教科書のゲームを作って...
-
ExcelVBAのDoEventsによるエラー?
-
SMART情報
-
Excel vbaについての質問
-
ACCESS2007 VBA 「INSERT INTO...
-
WSHでレジストリキーの確認(Wi...
-
エクセルVBAで#N/Aのようなエ...
-
【VBA】ワークブックを開く時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
LaTeXのエラーについて(コンパ...
-
Filter関数を用いた結果、何も...
-
ACCESSで値を代入できないとは?
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
ApplicationとWorksheetFunctio...
-
実行時エラー 438 の解決策をお...
-
VBでSQL文のUPDATE構文を使った...
-
pythonのopenpyxlについて
-
【Access】Excelインポート時に...
-
SQLでエラーです。
おすすめ情報
一部間違えていました。すみません!!!!
unless ( $ENV {'HTTP_REFERER'} =˜ /^(?:${referer1})¥?[a-z]{4]&_gl/
|| $ENV {'HTTP_REFERER'} =˜ /^(?:${referer2})¥?[a-z]{4]&_gl/
|| $ENV {'HTTP_REFERER'} =˜ /^(?:${referer3})¥?[a-z]{4]&_gl/ )
{
&error( '参照元が違います' . $ENV{'HTTP_REFERER'} );
exit;
}