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上出现故障。。