0

重複の可能性:
PHP: 「通知: 未定義の変数」および「通知: 未定義のインデックス」

これは奇妙ですが、以下の $_POST メソッドを使用して入力を投稿しています。

$c = count($_POST['gridValues']);

しかし問題は、次のようなエラーが表示されることです。

Notice: 未定義のインデックス: gridValues in /web/stud/..../ 40 行目 (上記の行)

$_POST メソッドは間違いなく正しいのに、なぜこのエラーが発生するのでしょうか?

以下はコード全体です。

<?php

ini_set('session.gc_maxlifetime',12*60*60);
ini_set('session.gc_divisor', '1');
ini_set('session.gc_probability', '1');
ini_set('session.cookie_lifetime', '0');
require_once 'init.php'; 

 ini_set('display_errors',1); 
 error_reporting(E_ALL);


session_start();

?>

$i = 0;
$c = count($_POST['gridValues']);

for($i = 0;  $i < $c; $i++ ){

    switch ($_POST['gridValues'][$i]){

 case "3": 
    $selected_option = "A-C";
    break;

    case "4": 
    $selected_option = "A-D";
    break;

    case "5": 
    $selected_option = "A-E";
    break;
}
}
4

2 に答える 2

2

最初に設定されているかどうかを確認する必要があります。

<?php

if(isset($_POST['gridValues'])) {
   $c = count($_POST['gridValues']);
}
?>
于 2012-10-09T23:12:16.670 に答える
0

未定義の変数に関する通知レベルのメッセージを回避するには、いくつかの方法があります。

  1. @ を変数の前に置きます。例:$c = @$_POST['gridValues']変数の問題を無視するように明示的に指示しているため、これは危険な場合があります。@ の詳細については、PHP マニュアルを参照してください: http://php.net/manual/en/language.operators.errorcontrol.php

  2. エラー報告をオフ (または変更) します。元:ini_set('display_errors', 0);

  3. 変数を使用する前に、変数が定義されているかどうかを確認してください。元:

    $c = '';
    if(!empty($_POST['gridValues'])){
        $c = count($_POST['gridValues']);
    }
    
于 2012-10-09T23:21:48.747 に答える