2014-09-23 49 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语句不是整个开关