热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决C:\AbyssWebServer\htdocs\login_tools.php第37行的‘解析错误:语法错误,意外的‘else’(T_ELSE)’问题

作为一名PHP初学者,我在尝试构建包含登录和注册功能的网站时遇到了一个语法错误。尽管参考了几本关于PHP和MySQL的书籍,但这个问题仍然困扰着我。

作为一名PHP初学者,我手头有几本非常有用的书籍,如《PHP与MySQL轻松上手》和《Larry Ullman的PHP与MySQL》。这些资源极大地帮助了我对PHP和MySQL的理解,但在实际项目中遇到一个问题让我感到困惑。


我正在开发一个包含论坛页面的网站,并认为添加登录和注册功能是非常必要的。最初,一切进展顺利,直到我在项目中引入了login_tools.php脚本后,遇到了一个语法错误。这个错误信息是:“Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\Abyss Web Server\htdocs\login_tools.php on line 37”。


以下是导致错误的完整PHP脚本:


function load($page='login.php') {
$url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
$url = rtrim($url, '/\\');
$url .= '/' . $page;

header("location:$url");
exit();
}

function validate($dbc, $user_name='', $pwd='') {
$errors = array();

if (empty($user_name)) {
$errors[] = '请输入用户名。';
} else {
$un = mysqli_real_escape_string($dbc, trim($user_name));
}

if (empty($pwd)) {
$errors[] = '请输入密码。';
} else {
$p = mysqli_real_escape_string($dbc, trim($pwd));
}

if (empty($errors)) {
$q = "SELECT users_id FROM users WHERE users_name='$un' AND pass=SHA1('$p')";
$r = mysqli_query($dbc, $q) or die("Error: " . mysqli_error($dbc));
if (mysqli_num_rows($r) == 1); { // 这里存在分号问题
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
return array(true, $row);
} else {
$errors[] = '用户名和密码未找到。';
}
}
return array(false, $errors);
}

解决方案



#1





您的PHP代码格式存在问题,特别是在if (mysqli_num_rows($r) == 1);这一行,这里不应该有分号。正确的代码应该是:


if (empty($errors)) {
$q = "SELECT users_id FROM users WHERE users_name='$un' AND pass=SHA1('$p')";
$r = mysqli_query($dbc, $q) or die("Error: " . mysqli_error($dbc));
if (mysqli_num_rows($r) == 1) {
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
return array(true, $row);
} else {
$errors[] = '用户名和密码未找到。';
}
}

建议在编写代码时使用集成开发环境(IDE),因为它们可以自动检测并提示此类语法错误。





#2





另一个需要注意的地方是if (mysqli_num_rows($r) == 1);这行代码实际上是一个空的if语句。由于后面跟着的是一个代码块,而没有相应的if语句来匹配这个else,因此会导致语法错误。


这种错误通常发生在将大括号放置在if语句之后的下一行时,容易忽略掉条件判断的结束符号。




推荐阅读
author-avatar
朱仔happy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有