控制电子邮件登录

我在此表单上有一个小问题,我希望对用户的电子邮件进行检查,而不仅仅是对密码进行检查。因为现在他的行为是在 db 中注册的电子邮件但不正确的密码留下错误消息的情况下,但如果电子邮件不正确,则不会发出检查。


我还想包括电子邮件检查


<?php ob_start(); session_start(); ?>

<?php

$messaggio = "";

if (isset($_POST['submit'])) 

{

    include 'connection/cnt.php';

    $email = $connessione->real_escape_string($_POST['email']);

    $password = $connessione->real_escape_string($_POST['password']);

    $query = $connessione->query("SELECT *FROM collaboratori WHERE email='$email'");


    if ($query->num_rows > 0) 

    {

        $data = $query->fetch_array();

        if (password_verify($password, $data['password'])) {

        $_SESSION['collaboratore'] = $data['ID_Collaboratore'];

        ?>

        <script type="text/javascript">

        window.location = "home.php";

        </script>   

        <?php   

    }

    else

        $messaggio = "Please check your inputs!";


    }

}

?>


MMMHUHU
浏览 151回答 1
1回答

当年话下

您帖子中的缩进具有误导性。在else看起来像它去与if ($query->num_rows > 0),但它实际上与去if (password_verify($password, $data['password'])。您需要一个else用于$query_num_rows检查的块。你也不应该转义密码,因为你没有在 SQL 查询中使用它(除非你password_hash()在保存密码时在调用之前也犯了转义它的错误)。<?php ob_start(); session_start(); ?><?php$messaggio = "";if (isset($_POST['submit']))&nbsp;{&nbsp; &nbsp; include 'connection/cnt.php';&nbsp; &nbsp; $email = $connessione->real_escape_string($_POST['email']);&nbsp; &nbsp; $password = $_POST['password'];&nbsp; &nbsp; $query = $connessione->query("SELECT *FROM collaboratori WHERE email='$email'");&nbsp; &nbsp; if ($query->num_rows > 0)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $data = $query->fetch_array();&nbsp; &nbsp; &nbsp; &nbsp; if (password_verify($password, $data['password'])) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_SESSION['collaboratore'] = $data['ID_Collaboratore'];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <script type="text/javascript">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.location = "home.php";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $messaggio = "Please check your inputs!";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; $messaggio = "Please check your inputs!";&nbsp; &nbsp; }}?>您还可以通过组合分配和检查来简化它。无需测试num_rows——如果没有匹配的行将$query->fetch_array()返回FALSE。<?php ob_start(); session_start(); ?><?php$messaggio = "";if (isset($_POST['submit']))&nbsp;{&nbsp; &nbsp; include 'connection/cnt.php';&nbsp; &nbsp; $email = $connessione->real_escape_string($_POST['email']);&nbsp; &nbsp; $password = $_POST['password'];&nbsp; &nbsp; $query = $connessione->query("SELECT *FROM collaboratori WHERE email='$email'");&nbsp; &nbsp; if ($data = $query->fetch_array() && password_verify($password, $data['password'])) {&nbsp; &nbsp; &nbsp; &nbsp; $_SESSION['collaboratore'] = $data['ID_Collaboratore'];&nbsp; &nbsp; &nbsp; &nbsp; ?>&nbsp; &nbsp; &nbsp; &nbsp; <script type="text/javascript">&nbsp; &nbsp; &nbsp; &nbsp; window.location = "home.php";&nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <?php&nbsp; &nbsp;&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; $messaggio = "Please check your inputs!";&nbsp; &nbsp; }}?>
打开App,查看更多内容
随时随地看视频慕课网APP