2012-10-09 3 views
0

가능한 복제를 정의되지 않은 오류 왔는지 오전 :
PHP: “Notice: Undefined variable” and “Notice: Undefined index”

이 이상한하지만 난 아래 인 $ _POST 방법을 사용하여 입력을 게시하고있다 :

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

그러나 문제는 내가라는 오류 수신하고 있다는 것입니다 :

공지 사항 : 정의되지 않은 인덱스 : 줄에 /web/stud/..../에서 gridValues ​​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; 
} 
} 
+0

이 당신을 위해 도움이 될 수 있습니다 http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/12770836#12770836 – hakre

답변

2

가 처음 설정되어있는 경우 확인해야합니다 : 정의되지 않은 변수에 대한 통지 수준의 메시지를 방지하기위한 몇 가지 방법이 있습니다

<?php 

if(isset($_POST['gridValues'])) { 
    $c = count($_POST['gridValues']); 
} 
?> 
+0

하지만 이제'undefined variable : c'오류가 발생합니다. 저도 그렇게해야합니까? – user1723760

+0

$ c는 if 문에만 유효합니다. $ _POST [ 'gridValues']의 값을 사용하여 작업을 수행 할 곳을 가정하면 더 많은 코드를 if 블록으로 옮겨야 할 것입니다. –

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']); 
    }