作者:朱仔happy | 来源:互联网 | 2024-12-07 16:07
作为一名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);
}
解决方案