2011-10-13 43 views
0

我在處理表單數據時遇到問題。提交表單時,將創建sign_up類中的對象,並在此類中驗證$_POST數組。各種「if」語句檢查然後進行過濾掉不想要的字符,如果結果不等於「0」,則消息被添加到陣列中,請參閱下面未定義的索引:在類中處理表單時的名稱

<?php 
    include('super_class.php'); 

    class Signup_User extends Super_Class { 
      protected $errors = array(); 

    public function processUserInput() { 

      if($_SERVER['REQUEST_METHOD']=='POST') { 

       if(0 == preg_match("/\S+/",$name = $_POST['name'])) { 
        $this->errors['name'] = "Please enter your first name."; 
      } 

的形式具有的提取物PHP代碼,其中執行下文中,當一個場沒有被填充,等等

<?php if(isset($_POST['name'])) { echo $sign_up->getError('name');}?> 

sign_up類對象的getError代碼。

public function getError($name) { 

    if($this->errors[$name]) { 
     return $this->errors[$name]; 
    } 
} 

如果我加載表格,只需按「提交」所有錯誤旁打印出的輸入領域的打算,但是如果我輸入一些文本,例如名稱輸入框中,我得到以下錯誤: Notice: undefined index name,並指向getError函數?

我想我可能需要首先將$_POST數組定義爲變量,然後檢查它們,但結果仍然相同。

希望有人可以幫忙,我一直在這個圈子上圍繞!

+0

感謝您的幫助和解釋,它的工作!我差點拿到了,哈哈! – Alan

+0

歡迎來到StackOverflow!你應該upvote並'接受'yi_H的回答,因爲他第一個正確的答案 –

+0

我相信我有!我選擇了'是'這個帖子對你們都有幫助,我希望你們的意思是! – Alan

回答

0

你想顯示爲「名」中的一個錯誤,但它是有效的,沒有錯誤,併爲「名」因此沒有指數在$這個 - >錯誤。試試這個,而不是...

public function getError($name) { 

    if(isset($this->errors[$name])) { 
     return $this->errors[$name]; 
    } 
} 
+0

感謝您的幫助 – Alan

0

如果沒有錯誤,則該鍵不在數組中。寫這樣的:

if(isset($this->errors[$name])) { 
+0

感謝您的幫助 – Alan

相關問題