我有一个下面登录页面的php文件。连接的html页面上的表单的用户名和密码在数据库中,但是当我点击提交时,我得到的连接是重置错误页面。我错过了什么?这是在NetBeans中进行的,我使用的是mysql服务器和apache web服务器。这也是一个附加的注销选项,选择它只会导致浏览器提示如何处理它(保存或打开)。我试图将userId和passID的值更改为数据库中的值,但它仍然无效。我究竟做错了什么?在我移动一些文件后,我收到了下面的消息。警告:mysqli_real_escape_string()期望参数1为mysqli,字符串在第14行中给出C:\ WampDeveloper \ Websites \ DefaultWebsite \ webroot \ Loginpage.php警告:mysqli_real_escape_string()期望参数1为mysqli,字符串给定在C:\ WampDeveloper \网站\ DefaultWebsite \根目录\ Loginpage.php上线15接取拒绝为了让我的项目能够正常运行php代码,我需要对netbeans或服务器配置做些什么修改
<?php
session_start();
include("dbconfig.php");
$dbname="sailingdb";
$errorvar = "";
if (isset($_POST['submit'])) {
if (empty($_POST['user']) || empty($_POST["pass"])) {
$errorvar = "Both field are required";
} else {
//defining and injection protecting data
$userID=$_POST['user'];
$passID=$_POST["pass"];
$userID=stripslashes($userID);
$passID=stripslashes($passID);
$userID=mysqli_real_escape_string($dbname, $userID);
$passID=mysqli_real_escape_string($dbname, $passID);
$passID=md5($passID);
$query = "SELECT * FROM users where userName = '$userID' AND pass = '$passID'";
$queryresult=mysqli_query($dbname,$query);
$row = mysqli_fetch_array($queryresult,MYSQLI_ASSOC);
if (mysqli_num_rows($queryresult)==1) {
$_SESSION['userName'] = $userID;
header("MainMenu.html");
} else {
header("MainMenu.html");
echo "Acess denied";
}
}
}
?>
的dbconfig.php代码如下。
<?php
$servername="localhost";
$user="root";
$passw="*****";
$dbname="Sailingdb";
$conn=new mysqli($servername, $user, $passw, $dbname);
if (mysqli_connect_error()) {
die("Databse connection failed: " . mysqli_connect_error());
}
?>
不知道关于mysqli的更多信息,但是ReadingTFM建议您的mysqli_query函数应该传递连接对象的结果,而不是数据库名称。 – YvesLeBorg
试过它作为这个$ queryresult = mysqli_query($ query); $ row = mysqli_fetch_array($ queryresult,MYSQLI_ASSOC);同样的结果。 – user1305085
错误,不清楚......如果你没有使用它创建的连接对象,为什么还要包含'dbconfig.php'? – YvesLeBorg