Php 身份验证不需要';是否从查询返回有效结果?
我正在编写代码来请求登录信息&如果有效,请跳转到另一个页面。但为什么它总是停留在登录页面? Index.php:Php 身份验证不需要';是否从查询返回有效结果?,php,mysql,authentication,phpmyadmin,Php,Mysql,Authentication,Phpmyadmin,我正在编写代码来请求登录信息&如果有效,请跳转到另一个页面。但为什么它总是停留在登录页面? 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_
<?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;
连接数据库也没有问题。您使用的是
include('adminlogin.php')代码>在if-else
语句之后。所以每次打开adminlogin.php
要重定向页面,您也可以使用标题。我看不到您正在重定向。。哦,终于有人使用了准备好的语句了
。可能是因为在结束后如果
,你又加上了“adminlogin.php”?我不知道要连接的api<代码>mysqli
根据您的另一个问题。还是事实上是PDO?这个的HTML表单在哪里?太多未知数,太多过去的问题没有被接受的答案。你应该使用标题('location:…'),而不是包含在这里。还有一个谁期待一个神奇的答案,拜拜,这是打字错误。很抱歉我修正了admin.php注释$password=sha1($username.$password);但它不适用于使用类似格式的客户登录页面。
<?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;
}
?>