2017-06-06 54 views
0

我有一个下面登录页面的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()); 
    } 
?> 
+0

不知道关于mysqli的更多信息,但是ReadingTFM建议您的mysqli_query函数应该传递连接对象的结果,而不是数据库名称。 – YvesLeBorg

+0

试过它作为这个$ queryresult = mysqli_query($ query); $ row = mysqli_fetch_array($ queryresult,MYSQLI_ASSOC);同样的结果。 – user1305085

+0

错误,不清楚......如果你没有使用它创建的连接对象,为什么还要包含'dbconfig.php'? – YvesLeBorg

回答

0

的消息称:

mysqli_real_escape_string()预计参数1是mysqli的,串 给出

既然你在dbconfig.php有这样的:

$conn=new mysqli($servername, $user, $passw, $dbname); 

您可以尝试这样做:

$userID=mysqli_real_escape_string($conn, $userID); 
$passID=mysqli_real_escape_string($conn, $passID); 
相关问题