我在寫代碼要求登錄信息&有效,如果有效,跳轉到另一頁。但爲什麼它總是停留在登錄頁面? 的index.php:身份驗證不會返回查詢的有效結果嗎?
<?php
session_start();
require('../model/database.php');
require('../model/admin_db.php');
$action = filter_input(INPUT_POST, 'action');
if ($action === NULL) {
$action = filter_input(INPUT_GET, 'action');
if ($action === NULL) {
$action = '';
}
}
if(!isset($_SESSION['is_valid_admin'])){
$action = 'get_admin';
}
switch($action){
case 'get_admin':
$username = filter_input(INPUT_POST, 'username');
$password = filter_input(INPUT_POST, 'password');
echo $username;
echo $password;
echo is_valid_admin_login($username, $password);
if (is_valid_admin_login($username, $password)){
$_SESSION['is_valid_admin']=true;
include ('admin_menu.php');
}
else {
$login_message = 'you must login to view this page.';
include ('adminlogin.php');
}
break;
admin_db.php:
<?php
function is_valid_admin_login($username, $password) {
global $db;
$password = sha1($username . $password);
$query = 'SELECT username FROM administrators
WHERE username = :username
AND password = :password';
$statement = $db->prepare($query);
$statement->bindValue(':username', $username);
$statement->bindValue(':password', $password);
$statement->execute();
$valid = ($statement->rowCount() == 1);
$statement->closeCursor();
return $valid;
}
?>
而且還有與連接數據庫沒有問題。
我沒有看到你重定向..哦,最後*有人使用'準備語句'。 – Nytrix
也許因爲你在'end if'之後再次包含'adminlogin.php'? – Jeff
我不知道該連接的api; 'mysqli_'作爲你的問題之一。或者它實際上是PDO?以及HTML格式在哪裏?太多未知數,過多的問題沒有被接受的答案。 –