Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 我的代码中有一些错误_Php_Html_Mysqli - Fatal编程技术网

Php 我的代码中有一些错误

Php 我的代码中有一些错误,php,html,mysqli,Php,Html,Mysqli,警告:mysqli\u real\u escape\u字符串正好需要2个参数,1 在第28行的C:\xampp\htdocs\login2\login.php中给出 警告:mysqli\u real\u escape\u字符串正好需要2个参数,1 在第29行的C:\xampp\htdocs\login2\login.php中给出 警告:mysqli_select_db希望参数1为mysqli,string 在第31行的C:\xampp\htdocs\login2\login.php中给出 警告:

警告:mysqli\u real\u escape\u字符串正好需要2个参数,1 在第28行的C:\xampp\htdocs\login2\login.php中给出

警告:mysqli\u real\u escape\u字符串正好需要2个参数,1 在第29行的C:\xampp\htdocs\login2\login.php中给出

警告:mysqli_select_db希望参数1为mysqli,string 在第31行的C:\xampp\htdocs\login2\login.php中给出

警告:mysqli_num_行希望参数1是mysqli_结果, 第35行C:\xampp\htdocs\login2\login.php中给出的字符串

有人能帮我弄清楚吗? 下面是我的代码

    <?php
    session_start(); // Starting Session
    $error=''; // Variable To Store Error Message
    if (isset($_POST['submit'])) {
    if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
// Define $username and $password
$username=$_POST['username'];
$password=$_POST['password'];
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "server1";
// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// To protect mysqli injection for Security purpose
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($username);
$password = mysqli_real_escape_string($password);
// Selecting Database
$db = mysqli_select_db("server1", $conn);
// SQL query to fetch information of registerd users and finds user    match.
$query = "select * from account where password='$password' AND username='$username'";
$result = mysqli_query($conn, $query) or trigger_error("Query Failed! SQL: $query - Error: ". mysqli_error($mysqli), E_USER_ERROR);;
$rows = mysqli_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // Initializing Session
header("location: profile.php"); // Redirecting To Other Page
} else {
$error = "Username or Password is invalid";
}
mysqli_close($conn); // Closing Connection
}
}
?>
请查收

您还需要提到$con变量:

$username = mysqli_real_escape_string($con, $username);
$password = mysqli_real_escape_string($con, $password);
此外,您已经在此行中指定了数据库:

$conn = new mysqli($servername, $username, $password,$dbname);
所以,下面这一行是多余的。您只需删除以下内容:

$db = mysqli_select_db("server1", $conn);

您可以使用过程样式或面向对象样式。由于面向对象的方法更受鼓励,我将展示这一点

...
$username = $conn->real_escape_string($username);
$password = $conn->real_escape_string($password);
...
$db = $conn->select_db("server1"); //redundant line
...
$result = $conn->query( $query)
$rows = $conn->num_rows($query);
...
$conn->close();

解决这个问题所需要的只是正确地检查文档

$db=mysqli\u select\u dbserver1,$conn;不必要的线路。$conn=mysqli$servername、$username、$password、$dbname;不要将传统方法与面向对象方法混为一谈;;在$query第35行中,您所需要做的就是查看这些函数的php手册页面。这些错误是不言自明的。我可以告诉您,首先,mysql\u real\u escape\u字符串要求您传递数据库连接。它使用客户端信息来确定字符集规则。如果使用绑定参数,则不需要使用该函数,应该使用绑定参数。是否读取了错误?