我正在尝试将我的最终项目从Cloud9推送到Heroku。不幸的是,管理项目登录过程的代码有一个错误,它阻止它将我的大部分网站显示给我的老师。
这是代码
//login
<?php
session_start();
include 'dbConnection.php';
$conn = getDatabaseConnection();
$username = $_POST['username'];
$password = sha1($_POST['password']);
//echo $password;
//Watch out! Sql injection risk
/*$sql = "SELECT *
FROM q_admin
WHERE username = '$username'
AND password = '$password'";*/
$sql = "SELECT *
FROM f_admin
WHERE username = :username
AND password = :password";
$namedParameters = array();
$namedParameters[':username'] = $username;
$namedParameters[':password'] = $password;
$stmt = $conn->prepare($sql);
$stmt->execute($namedParameters);
$record = $stmt->fetch(PDO::FETCH_ASSOC);
if (empty($record)) {
echo "Wrong username or password";
header("Location: login.php?login=false");
exit;
} else {
$_SESSION['username'] = $record['username'];
$_SESSION['userId'] = $record['userId'];
header('Location: admin.php'); //redirects users to admin page
}
?>
在决定是否让用户进入网站的管理页面之前,上面的代码应该查看我的SQL数据库中的用户名和密码。
相反,用户将被带到显示错误500的大部分空白页面,无论其凭据如何。
根据Heroku日志,错误在第24行附近,但我仍然无法识别它。
感谢您抽出宝贵的时间。