2011-06-19 66 views
0

我有一个表单验证问题。下面是提交时发生的逻辑(至少是其中的一部分)。在for循环中,我们检查一个站点访问者可以注册的可能事件数组。如果用户没有检查任何事件(这些是复选框,因为用户可以注册多个事件),我们应该在下面输入第二条if语句,但由于某种原因,我们不是。我知道如果没有检查到任何post变量,通过设置一个会话变量等于变量$ ECEventCnt,我可以变更,如果没有发布任何内容,该变量等于0.但是,我们似乎永远不会进入第二个陈述。有什么想法吗?php表单验证不起作用

unset($_SESSION["ECEvents"]); 
     $ECEventsArray = array(); 
     $ECEventCnt = 0; 
     $_SESSION['debug'] = 'EC'; 
     for ($i=0; $i<count($Val_WhichEventTypes); $i++) { 
      $key = $Val_WhichEventTypes[$i]["eventKey"]; 
      //echo 'key' . $key; 
      if (isset($_POST["WhichEvent-" . $key]) && $_POST["WhichEvent-" . $key] == $key) { 
       $_SESSION['debug'] .= ' we made it to the place.' . $_POST["WhichEvent-" . $key]; 
       $ECEventsArray[$key] = $key ; 
       if (strlen($ECEventsArray[$key])) $ECEventCnt += 1; // Only advance counter if EC Event is checked (key value is set) 
      } 
     } 
     $_SESSION['ecventcount'] = $ECEventCnt; 
     if ($ECEventCnt = 0) { 
      set_step_INvalid(5); 
      $_SESSION['debug'] .= ' we made it to the 2nd place.'; 
      $cnt += 1; 
      $ValidationError .= ((strlen($ValidationError)==0) ? "" : ", ") . "<br />Please just select at least one Event Type/Time"; 
     } 
     $_SESSION["ECEvents"] = $ECEventsArray; 
     //valid_step52(); 

    } 

回答

2
if ($ECEventCnt = 0) { 

应该

if ($ECEventCnt == 0) { 

您分配给变量$ECEventCnt,但你的意思做的是使用它进行比较。

+0

哈哈。咄。当这样的事情发生时,我恨它。盯着这个小时。谢谢你多一双眼睛。 – erfling

+0

显然我太知道听到你投票了。 Appologies。 – erfling