5

リモートサーバーでは問題ありませんが、localhost (xampp 3.1.) ではレポート通知をオフにできません。

<?php
$Fname = $_POST["Fname"];
...

結果:

Notice: Undefined index: Fname in D:\xampp\htdocs\xx\php01\form01.php on line 6

php.ini

; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_NOTICE  //shouldn't this line turn off notice reporting ?

なにか提案を ?

4

5 に答える 5

14

このコードをファイルの先頭に記述します。

ini_set('display_errors', 0);
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

編集1

上記の行を使用したくない場合は、通知を抑制するため@に前に書く必要があります。$_POST

$Fname = @$_POST["Fname"];

編集 2

この行error_reporting = E_ALL & ~E_NOTICEも変更さdisplay_errors = Offれますが、プログラミングの慣行は悪いです。

于 2013-11-12T19:45:22.680 に答える
3

実行中の XAMPP で通知 (またはその他の機能) をオフにしたい場合:
1. 正しい INI ファイルを編集していることを確認します (コントロール パネルから構成を選択します)
2. display_errors=on をオンにし
ます 3. error_reporting=E_ALL & ~E_NOTICE (これにより、通知エラーのみが抑制されます)
4.重要- XAMPP がファイルのさらに下の設定を上書きしていないことを確認してください (最初の設定セットの上にある通知を読んでください)
5. ファイルを保存した後、Apache を停止して開始します

于 2015-03-04T20:16:31.580 に答える
1

phpinfo();ラインの直前にa を実行してみてください$Fname = $_POST["Fname"];。error_reporting プロパティの値は? 表に表示される値を理解するには、これまたはこれを参照してください。

期待どおりでない場合は、プロパティが php によって変更されていないことを確認してください。間違った php.ini ファイルを編集した可能性もあります。XAMPP は元の php.ini ファイルをコピーして独自のファイルを作成する傾向があります。を使用phpinfo();して、テーブルで「php.ini」文字列を検索します。使用されている php.ini ファイルのパスが見つかります。

最後に、おそらく問題は、php.ini ファイルを変更した後に apache を適切に再起動しなかったことです。問題は、xamp が apache サービスの別個のプロセスであるということです。XAMP を閉じても Apache サービスは停止しません。XAMPP コントロール パネルを使用して Apache を停止/起動することをお勧めします。

于 2013-11-12T19:36:04.767 に答える
1

この問題を解決する最も簡単な方法は次のとおりです。 1. Apache サーバーをオフにします。 2. c:\xampp\php\ に移動します。 3. php.ini の名前を php.ini.bak に変更します。 4. php.ini-production の名前を に変更します。 php.ini 5. サーバーを再度オンにします。

すべてを本番モードに戻すという欠陥があります。ただし、これはいつでも元に戻すことができます。

于 2015-04-16T17:58:11.880 に答える