PHP IF body和ELSE body都在执行

PHP IF body和ELSE body都在执行,php,if-statement,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

这是一个非常奇怪的问题。。我已经到处寻找解决办法了。。 这是我的密码。它是我正在创建的网站上帐户设置页面的一部分。该代码与用户更改其名字有关:

// 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;
    }
}
    }
//如果存在post变量,则用户已更改某些内容
如果(美元邮政){
如果(isset($_POST['firstname'])){
$firstname=trim($_POST['firstname']);
如果(strlen($firstname)<2 | strlen($firstname)>15){
$msg=“无法完成您的请求。名字必须介于2到15个字符之间。”;
}
否则{
//连接到数据库
需要一次_('modules/config.php');
//更新表
$query=sprintf(“更新用户集名='%s',其中电子邮件='%s'”,
mysql\u real\u escape\u字符串($firstname),
mysql_real_escape_字符串($_SESSION['email']);
mysql\u查询($query);
//设置成功消息
$msg=“名字已成功更改。”;
//重置firstname会话变量
$\会话['firstname']=$firstname;
}
}
}

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

我认为您在结尾缺少了
}

else{

实际上正在关闭:

if(isset($\u POST['firstname']){

而不是


如果(strlen($firstname)<2| strlen($firstname)>15{

我不知道这是否能解决您的问题,试试看

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

解析错误:语法错误,意外的$end只是看看它,第一个
if()
似乎缺少一个尾随
。哎呀,我忘了在结尾处添加了}。这不是我遇到的问题。$msg被设置为if body中的值,但数据库由于某种原因仍在更新。。据我所知,代码中没有错误…这听起来可能很奇怪,但请尝试将“| |”替换为“或”关键字。我曾经遇到过一个问题,出于某种原因,它解决了。我尝试了这个方法,它的工作原理与以前一样:在Xampp开发服务器上工作正常,在iPage上出现故障。。