2014-03-06 54 views
1

我對理解變量作用域存在問題。在php中的全局錯誤消息

我有一個巨大的.php文件,許多$ _POST驗證(我知道這不是很好的做法)。無論如何,我想要一個小的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

我不明白你的問題,但也許這就是你的答案:

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

,我建議你去學習如何使用會議工作。 ,你應該知道,$ _ POST將是空的每個刷新F5

0

你可以把在陣列中的錯誤使他們的動態。

<?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 
    } 
?> 

你也可以使用switch語句而不是elseif,它是整潔的。