2014-09-23 48 views
0

返回陣列我提交表單,使用下面的函數(prize.php)PHP - 從功能

loadmodule('validate'); //This just loads the validate.php function. 
    $validate = new Validate; 
if($_POST) 
    { 
     $validateForm = $validate->validateForm(); 


     switch($validateForm) 
     { 

       case 1: 
        $error = 'You\'re not logged in..'; 
        $stop = true; 
       break; 

       //If no error = success.  
       if($validateForm['code'] == "100"){ 
        $won = $val['prize']; 
        $type = $val['type']; 
        $success = 'You have won! The prize was '.$won.' '.$type.''; 
        die($success); 
       } 


     } 
      die($error); 
    } 

這是爲了驗證表單(validate.php)功能:

function validate() 
       { 


        global $userdata; 

        if(!is_array($userdata)) 
         return 1; // User not logged in - return error code one. 

        //If no error, lets show a success message. 
        $prize = "100"; 
       $text = "dollars"; 
        return array("code"=>"100","prize"=>"$prize","type"=>"$text"); 

        }//If won 



       } 

上面的代碼返回:

Notice: Undefined variable: error in /home/.../public_html/pages/prize.php on line 27 

雖然,它不應該在那裏拋出一個錯誤,罪惡ce die($success)應該由代碼100觸發。

我在做什麼錯?

+3

它很容易被發現。如果案例不是1,那麼您將得到該通知,因爲'$ error'沒有被定義。 – 2014-09-23 17:47:19

+0

@Hanky웃Panky你能舉一個例子嗎?我現在失去了.. – oliverbj 2014-09-23 17:58:51

+0

是'$ validate-> validateForm()'和'validate()'函數你顯示應該是相同的?在那種情況下,這是問題之一... – 2014-09-23 18:22:45

回答

0
$error = ''; 
$stop = false; 
switch($validateForm){ 
      case 1: 
       $error = 'You\'re not logged in..'; 
       $stop = true; 
      break; 
} 


      //If no error = success.  
      if($validateForm['code'] == "100"){ 
       $won = $val['prize']; 
       $type = $val['type']; 
       $success = 'You have won! The prize was '.$won.' '.$type.''; 
       die($success); 
      } 

首先猜測是if($validateForm['code'] == "100"){是在交換機之外。

$validateForm = $validate->validateForm(); 

上your're做在所述開關的if ($validateForm==1)返回一個數組.. ..以後當$ validateForm是一個數組。

你可能有更好的運氣用一個簡單的is_array() if語句不是整個開關