php - 我似乎无法让这个 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,则执行得非常好!
请帮忙。
解决方案
根据我的评论,要执行 else 语句,请输入数据库中的有效电子邮件地址和错误的密码。那应该到达 else 语句。
要回显,请在脚本顶部$error
定义,然后添加$error = '';
echo $error; //Below the closing `}` of the `if($row....) ` statement
此外,您的查询根本不安全。您正在直接注入一个任何人都可以轻松操作的变量。你永远不应该相信这样的。因此,我们准备了声明。它们有助于防止 SQL 注入攻击以及那些讨厌的引用问题。请访问下面的链接以获取有关如何将它们与mysqli_
API 一起使用的教程。
推荐阅读
- scala - 运行后台任务以更新缓存
- excel - 如果公式返回包含“@”的值,则返回空白
- objective-c - 如何制作一个支持 Swift 导入的 Objective-C 静态链接框架
- react-native - 深度链接到具有不同参数的已打开屏幕。可能吗?
- c++ - 内联变量的多次破坏
- vue.js - 从子组件更改事件 v-data-table 行的背景
- javascript - devops-rest APi - $expand 不适用于“Work Items - Get Work Items Batch”
- oracle-apex - Oracle APEX - 查找包含特定区域类型的页面
- mysql - 更新对象时重复的键条目
- python - 如何将时间戳转换为日期?