Php 我的查询不起作用
我正在制作一个连接到数据库的登录脚本,但是我得到了一个 未定义变量:中的dbUsername 第21行的F:\xamp\register\login\functions.php 我进一步检查了一下,发现我的查询不起作用,你们能帮我吗Php 我的查询不起作用,php,database,Php,Database,我正在制作一个连接到数据库的登录脚本,但是我得到了一个 未定义变量:中的dbUsername 第21行的F:\xamp\register\login\functions.php 我进一步检查了一下,发现我的查询不起作用,你们能帮我吗 if (isset($_POST['sub'])) { include_once("Connect.php"); $username = strip_tags($_POST['username']); $password = strip_t
if (isset($_POST['sub']))
{
include_once("Connect.php");
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$sql = "SELECT id, username, password FROM login WHERE username = '$username' LIMIT 1";
$query = mysqli_query($dbcon, $sql);
if ($query) {
$row = mysqli_fetch_row($query);
$userId = $row[0];
$dbUsername = $row[1];
$dbPassword = $row[2];
}
if ($username == $dbUsername && $password == $dbPassword) {
$_SESSION['username'] = $username;
$_SESSION['id'] = $userId;
header('location: login.php');
} else {
echo "incorrect username or password.";
}
}
如果$query为false,则不会设置$dbUsername和$dbPassword
设置$dbUsername=null$dbPassword=null;在你的if声明之前
将Where查询更新到此位置:
"WHERE username = '. $username .'
您需要在if$查询中使用您的条件,但我认为不需要重新检查,因为您已经在username=$username的查询中进行了检查。因此,我将您的代码修改为: 修改代码:
$dbUsername是在哪里定义的?此查询在概念上是错误的。由于某些原因,我无法发布它。因为它的查询不是qeury…:请阅读相关文章。永远不要将密码直接存储在数据库中。谢谢,但它现在不起作用。它说:警告:mysqli_num_rows期望参数1是mysqli_result,布尔值在F:\xamp\register\login\functions.php中给出14@Furkanyavuz:bro,意思是你的查询有错误。因为它的返回是错误的。。。。chk更新答案。。。或者使用$query=mysqli_query$dbcon、$sql或diemysqli_error$dbcon;将获得错误。@Furkanyavuz一些调试提示,。使用print\u r$\u POST;你得到了什么。。。。第二,在phpmyadmin中运行此查询手册。。。从登录名中选择id、用户名、密码,其中用户名=‘您的用户名’限制1我已将错误的数据库表链接到我的$sql。问题解决谢谢您的帮助:@Furkanyavuz:很高兴知道它的解决方法,我给您兄弟的建议,提高您的调试技能,它将在将来帮助您。逐行调试,使用错误报告。。等:
$sql = "SELECT id, username, password FROM login WHERE username = '$username' LIMIT 1";
$query = mysqli_query($dbcon, $sql);
if (!$query) {
die(mysqli_error($dbcon));
}
else
{
$count = mysqli_num_rows($query); // check total no of rows
if ($count > 0)
{
session_start(); // start session
$row = mysqli_fetch_row($query);
$userId = $row[0]; // get userid from database
$dbUsername = $row[1]; // get username from database
$_SESSION['username'] = $dbUsername;
$_SESSION['id'] = intval($userId);
header('location: login.php');
die(); // using die() after header()
}
else{
echo "incorrect username or password."; // if query not return anything print this.
}
}