【发布时间】:2019-06-11 20:40:31
【问题描述】:
我正在尝试使用 php 制作登录功能。由于某种原因,当我加载页面时,错误不断出现。
<html>
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
$result = mysqli_query($con, $SQL)or die(mysqli_error($connection));
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$dbc = mysqli_connect("localhost", "my_user", "my_password", "world");
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if (!$dbc || mysqli_num_rows($dbc) == 0) {
session_register("myusername");
$_SESSION['login_user'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<html/>
警告:mysqli_query() 期望参数 1 为 mysqli,在第 13 行的 /home/ubuntu/workspace/website/login.php 中给出 null
【问题讨论】:
-
您不应存储纯文本密码。哈希它们。
$con、$connection和$dbc是什么?为什么有 3 个数据库连接? -
$db必须是正确的变量,因为您没有收到来自mysqli_real_escape_string()的错误。将$con和$dbc更改为$db。 -
session_register()自 PHP 5.4.0 起在 PHP 中不存在。如果您仍在使用该 PHP 版本,则应立即考虑升级。如果您已经在使用最新版本,那么这将在您的代码中引发错误。