小明: 嘿,小红,我正在开发一个迎新管理信息系统,你能帮我看看登录功能的实现吗?
小红: 当然可以,让我来看看你的代码。
小明: 好的,这是我的代码。
// 迎新管理系统的登录功能实现
function login($username, $password) {
global $conn;
$sql = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
if (password_verify($password, $row['password'])) {
return true;
}
}
return false;
}
]]>
小红: 看起来你已经实现了基本的用户验证逻辑。不过,要注意SQL注入问题哦!
小明: 是的,我也考虑到了这个问题,所以使用了预处理语句。
// 使用预处理语句防止SQL注入
function loginPrepared($username, $password) {
global $conn;
$stmt = $conn->prepare("SELECT password FROM users WHERE username=?");
$stmt->bind_param("s", $username);

$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
$stmt->bind_result($hashedPassword);
$stmt->fetch();
if (password_verify($password, $hashedPassword)) {
return true;
}
}
return false;
}
]]>
小红: 这样就更安全了。另外,记得在实际应用中使用HTTPS来加密传输的数据。
小明: 谢谢你的建议,我会注意的。
