
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を見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VBAエラー】Nextに対するFor...
-
お助けください!VBAのファイル...
-
On ErrorでエラーNoが0
-
文字列内で括弧を使うには
-
SQLでエラーです。
-
オブジェクト型の変数にフォー...
-
String""から型'Double'への変...
-
ACCESSで値を代入できないとは?
-
python初心者です。
-
実行時エラー'-2147467259(8000...
-
UBoundに配列がありませんとエ...
-
ISAMドライバー
-
IISの仮想ディレクトリ作成がわ...
-
【VB.NET】 パワポ操作を非表示で
-
Nullの使い方が不正ですのエラ...
-
Filter関数を用いた結果、何も...
-
【Access】Excelインポート時に...
-
エクセル マクロ VBAでスケジュ...
-
インポート時のエラー「データ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報
一部間違えていました。すみません!!!!
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;
}