PHP IF主体和ELSE主体都在执行

时间:2012-06-09 03:59:23

标签: php if-statement

这是一个非常奇怪的问题..我四处寻找解决方案.. 这是我的代码。它是我正在创建的网站上的帐户设置页面的一部分。代码与用户更改其名字有关:

// if there are post vars, user has changed something
if($_POST) {
if(isset($_POST['firstname'])) {
    $firstname = trim($_POST['firstname']);

    if(strlen($firstname) < 2 || strlen($firstname) > 15) {
        $msg = "<span class='errmsg'>Could not complete your request. First name must be between 2 and 15 characters.</span>";
    }
    else {
        // connect to db
        require_once('modules/config.php');

        // update table
        $query = sprintf("UPDATE Users SET FirstName = '%s' WHERE Email = '%s'",
            mysql_real_escape_string($firstname),
            mysql_real_escape_string($_SESSION['email']));
        mysql_query($query);

        // set success message
        $msg = "<span class='sucmsg'>First name successfully changed.</span>";

        // reset the firstname session var
        $_SESSION['firstname'] = $firstname;
    }
}
    }

编辑:添加了Dagon提到的右大括号。

2 个答案:

答案 0 :(得分:0)

我认为你最后错过了}

else {

实际上正在关闭:

if(isset($_POST['firstname'])) {

而不是

if(strlen($firstname) < 2 || strlen($firstname) > 15) {

答案 1 :(得分:0)

我不知道这是否能解决你的问题,试试吧......

 if(in_array(strlen($firstname), range(2, 15)))