首页 > 解决方案 > 我似乎无法让这个 else 语句在 php 中工作

问题描述

<?php 

session_start();

$link = mysqli_connect(database connection info);

if (mysqli_connect_error()) {
    echo "Could not connect to database";
    die;
}

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

    $query = "SELECT * FROM users WHERE email = '".$_POST['email']."'";

    $result = mysqli_query($link, $query);

    if ($row = mysqli_fetch_array($result)) {

        if ($_POST['email'] == $row['email'] && password_verify($_POST['password'], $row['password']))
        {
                $success .= "We're in baby";
        } else {
            $error .= "didn't work boi";
        }


    }

}

?>

基本上由于某种原因,此代码中的 else 语句

        if ($_POST['email'] == $row['email'] && password_verify($_POST['password'], $row['password']))
        {
                $success .= "We're in baby";
        } else {
            $error .= "send help";
        }

根本不工作。问题不在错误变量中,因为 echo 也不起作用。如果原始 if 语句返回 false,我无法让 else 语句输出任何响应。如果 if 语句返回 true,则执行得非常好!

请帮忙。

标签: phpmysql

解决方案


根据我的评论,要执行 else 语句,请输入数据库中的有效电子邮件地址和错误的密码。那应该到达 else 语句。

要回显,请在脚本顶部$error定义,然后添加$error = '';

echo $error;  //Below the closing `}` of the `if($row....) ` statement 

此外,您的查询根本不安全。您正在直接注入一个任何人都可以轻松操作的变量。你永远不应该相信这样的。因此,我们准备了声明。它们有助于防止 SQL 注入攻击以及那些讨厌的引用问题。请访问下面的链接以获取有关如何将它们与mysqli_API 一起使用的教程。

https://phpdelusions.net/mysqli


推荐阅读