2014-03-06 2 views
1

변수 범위에 대한 이해에 문제가 있습니다.PHP의 전역 오류 메시지

많은 $ _POST 유효성 검사가 포함 된 거대한 .php 파일이 있습니다 (좋은 습관은 아닙니다). 어쨌든 내가 오류 메시지를 출력하는 모든 코드 위에 약간의 HTML 부분을 원한다. 이 메시지는 모든 $ _POST 유효성 검사 함수에서 변경하려고합니다.

예 :

if($ERR) { 
    echo '<div class="error-message">'.$ERR.'</div>'; 
} 

지금 내 기능은 동일한 파일에 따르고 있습니다.

if(isset($_POST['test']) { 
    $ERR = 'Error!'; 
} 

if(isset($_POST['test2'] { 
    $ERR = 'Error 2!'; 
} 

하지만 작동하지 않습니다. 엄청난 오해가 있으며 부끄럽다. 도와 주시겠습니까?

+1

PHP는 위에서 아래로 스크립트를 파싱하기 시작하여 모든 행을 연속적으로 처리하는 맨 아래로 나아갑니다. 스크립트의 맨 아래에 html을 배치 할 수 있습니다. – Tuim

+0

'if (isset ($ _ POST [ 'test']))'는 함수가 아닙니다. 만약 당신이 파일을 순차적으로 실행한다면, 설정하기 전에'$ ERR'을 울리는 것입니다. 함수가 있다면 실제 코드를 게시하십시오. – Styphon

+0

안녕하세요. 무엇을하고 싶으세요? 그 후에 좋은 길을 알려 드리겠습니다. – M98

답변

1

나는 질문을 잡을 didnt는하지만 어쩌면이 당신의 대답입니다 :

<body> 
    <p id="error_message"> 
    <?php if(isset($ERR)){echo $ERR;} ?> 
    </p> 
</body> 

와 나는 당신이 세션와 함께 작동하는 방법을 배울하는 것이 좋습니다. 및 각 또는 F5

0

당신이 그 (것)들을 동적으로 만들 배열의 오류를 넣어 할 수있는 새로 고침에 $ _POST가 비어 있음을 알아야한다.

<?php 
$error = array(); 

    if (!isset($_POST["test"]) || empty($_POST["test"])) { 

     $error['test'] = "test Field is required"; 

    } else if (!isset($_POST["test1"]) || empty($_POST["test1"])) { 
     $error['test1'] = "test Field is required"; 

    }else{ 
     //do something else 
    } 
?> 

elseif 대신 switch 문을 사용할 수도 있습니다.