
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
インポート時のエラー「データ...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
VBAでfunctionを利用しようとし...
-
「実行時エラー '3167' レコー...
-
マクロOn Error GoTo ErrLabel...
-
実行時エラー'-2147467259(8000...
-
Findプロパティを取得できません
-
VB.net 重複チェックがしたいです
-
クラスモジュールからのErr.Rai...
-
文字列内で括弧を使うには
-
VB2008 comboboxを連動させた...
-
オブジェクト型の変数にフォー...
-
String""から型'Double'への変...
-
VBA エクセル で FIND でのエラ...
-
Excel実行時エラー[80004005]に...
-
SQLでエラーです。
-
JAVA Jasper Report でのQRコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報
一部間違えていました。すみません!!!!
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;
}