Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的脚本不从mySQL返回记录?_Php_Mysql - Fatal编程技术网

Php 为什么我的脚本不从mySQL返回记录?

Php 为什么我的脚本不从mySQL返回记录?,php,mysql,Php,Mysql,我正在用mySQL和PHP构建一个登录门户 我有这个文件(dbc.php): 然后,我的实际PHP脚本(login.PHP)从登录页面中获取一篇文章: <?php //include database connection include("dbc.php"); session_start(); //put post values into variables $username = $_POST['username']; $password = $_POST['password'

我正在用mySQL和PHP构建一个登录门户

我有这个文件(dbc.php):


然后,我的实际PHP脚本(login.PHP)从登录页面中获取一篇文章:

<?php

//include database connection
include("dbc.php");
session_start();

//put post values into variables
$username = $_POST['username'];
$password = $_POST['password'];

//create db connector object
$db = new db_connect();
$conn = $db->connect();

//select correct db
mysqli_select_db($conn,”mydb”);

$username = mysqli_real_escape_string($conn,$username);

$query = "SELECT password FROM mydb.users WHERE username = '$username'";

$result = mysqli_query($conn,$query);

if(mysqli_num_rows($result) == 0)
{
header('Location: sorry.html');
}


$pwhash = $result;

if (password_verify($password, $pwhash)) {
header('Location: welcome.php');
} else {
header('Location: sorry.html');
}
?>

$result
包含MySQLi响应资源,而不是字符串或数组

您需要更改此行:

$pwhash = $result;
为此:

$pwhash = mysqli_fetch_assoc($result)['password'];

您需要从结果集中获取数据,然后与
password\u进行比较,验证
您是否尝试使用
print\r($result)
要查看(
$result
保存的数据是什么?如果我回显$result而不是使用标头重新定向,则表明$result为空。回显?你是说print_r()?他们正在使用
密码\u verify()
@Saty
$pwhash = mysqli_fetch_assoc($result)['password'];