HTML表单没有将值传递给PHP(mysqli_real_escape_string)

Mat*_*ios 0 html php mysql xampp mysqli

HTML

<form type="POST" action="includes/login.php">
    <input type="email" name="email" placeholder="email" />
    <input type="password" name="password" placeholder="parola" />
    <input type="submit" value="Login">
</form>
Run Code Online (Sandbox Code Playgroud)

PHP

<?php
require_once 'config.php';

if(isset($_POST['email'])) 
    {
       $email = mysqli_real_escape_string($_POST['email']);
    } 
else 
    {
        echo "Nu ati completat adresa de e-mail. <br />";
    }

if(isset($_POST['password'])) 
    {
       $email = mysqli_real_escape_string($_POST['password']);
    } 
else 
    {
        echo "Nu ati completat parola. <br />";
    }

if(isset($_POST['email']) && ($_POST['password']))
{ 
    $query = ("SELECT * FROM `users` WHERE password = '$password' AND email = '$email'");
    $result = mysqli_query($link, $query);
    $row = mysqli_fetch_array($result);
    $count_rows = mysqli_num_rows($result);

    if ($count_rows == 1)
    {
            $_SESSION["login"] = "OK";
            header("Location: ../index.php");
    }

    else
    {
        header("Location: ../login.php");

    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我尝试从MySQL切换到MySQLi,我确信它与此有关.即使输入具有名称,我的表单也不会将值传递给PHP脚本.在StackOverflow上进行了一些研究并发现很多关于表单没有传递数据的问题,但通常有一个错字或缺少名称,这不是我的情况(我认为).

(我知道密码还没有安全,我会尽快添加一个SHA256或其他东西,所以不要强调它)

尝试回应查询,它只是密码和电子邮件地址应该是空白.

SELECT * FROM `users` WHERE password = '' AND email = ''
Run Code Online (Sandbox Code Playgroud)

我也收到这个警告:

警告:mysqli_real_escape_string()需要2个参数,1在第4行的C:\ xampp\htdocs\breloc\includes\login.php中给出

我脚本中的第4行是:

$email = mysqli_real_escape_string($_POST['password']); 
Run Code Online (Sandbox Code Playgroud)

Mee*_*ain 5

更改您的表单标记

 <form type="POST">
Run Code Online (Sandbox Code Playgroud)

 <form method="POST">   
Run Code Online (Sandbox Code Playgroud)