php表单验证无效

时间:2011-06-19 14:59:04

标签: php validation forms

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

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();

    }

1 个答案:

答案 0 :(得分:2)

if ($ECEventCnt = 0) {

应该是

if ($ECEventCnt == 0) {

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