2010-07-27 8 views
0

error_reporting(E_ALL);Notice : 정의되지 않은 변수

주의 사항 : 제거, 내 스크립트 내가 주석을 제거 할 때 그러나, 다음과 같은 메모가 나타납니다, 잘 작동 정의되지 않은 변수 : 메시지를 /home/www/test/register/html/form_1.html.php에 11 행에

form_1.html.php :

함수 호출 배열 인수를 통해 기본적으로 반복가 라인 (11) 상에
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<html> 
    <head> 
    <meta name="generator" content= 
      "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> 
    <title>Sign in or Register</title> 
    </head> 


    <body> 
    <p><?php displayMessages($messages) ?></p><!-- line 11 --> 

:

function displayMessages($array) 

{ 
    if (!empty($array) && isset($array)) 
    { 
     foreach ($array as $number => $error) 
     { 
      echo '<font size="3" color="#990000">' . "* $error" . "</font></br>"; 
     }  
    } 
    elseif (empty($array) || !isset($array)) 
    { 
     echo ""; 
    } 

    elseif (empty($array) || !isset($array)) 
    { 
     $array = array(); 
     $array = null; 
    } 

} 
는,

빈 상태인지 확인하기 위해 if 조건을 추가했습니다. 빈 배열을 전달하기 때문에.

이이 세 파일의 작은 부분, 등록 양식해야하는데 :

  • index.php를
  • output.php
  • form_1.html.php

모두 찾음 (http://pastie.org/1062886)

색인 파일은 사용자가 값을 검사하고 유효성을 검사하지만 각 오류 배열에 오류가 표시되지 않으면 표시 오류 함수는 전달 된 배열에 값이있는 경우 해당 오류를 표시합니다.

나는 해결책이 꽤 기본이지만, 나는 멍청한 녀석이며 그게 내 머리카락을 끌어 당긴다.

+2

FYI -'! empty ($ something)'은'isset ($ something)'을 의미합니다. http://php.net/empty – gnarf

답변

2

, 확인 $messages이 존재합니다 변수가 설정되어있는 경우

if (isset($messages)) { 
    displayMessages($messages); 
} 

empty() 이미 확인, 그래서 && !isset($array) 검사 코드에서 필요하지 않습니다.

두 번째 elseif 분기의 조건은 첫 번째 elseif 조건과 동일하므로 두 번째 elseif 블록을 절대로 입력하지 않습니다.

+0

코드는 OP가 말했다 : http://pastie.org/1062881 – Wrikken

8
<p><?php displayMessages($messages) ?></p> 

해당 시점에 해당 변수가 존재하지 않습니다. ($ 메시지가 존재하지 않는로) 당신의 인수가 이미 null로 설정되었으며, $array 반드시 함수의 인수로 존재합니다

<p><?php if(isset($messages)) displayMessages($messages); ?></p> 

가 해결되지 않습니다 함수에 나중에 isset를 호출. displayMessages($messages) 함수 호출에 대한

+0

당신은 위대한 사람입니다! 정말 고맙습니다. –

+0

@ john mossel, 자신의 게시물 왼쪽에있는 수표를 클릭하십시오! – Warty

+0

아아아, 여러 사람들이 제대로 이해한다면 나도 확인해 볼까? –

관련 문제