在我的所有页面上,如果查询成功执行,我会回显成功警报,同样,如果没有成功执行,也会回显错误消息。
我注意到每次运行查询并执行回显时,它都会破坏图标(即图标图标未加载并且出现默认的灰色地球仪)。它还会触发 Quriks 模式。
可以使用哪些方法来更深入地回显 HTML(毕竟元标记、脚本等...),而不是在开始正文标记的最顶部。
在执行任何查询之前加载页面时,图标加载正常,经过测试,这是导致此问题的回显。
if($stmt->execute()) {
echo '<div class="alert alert-success alert-dismissible fade show notif-alert" role="alert">';
echo '<strong>Success!</strong> Password was changed successfully!';
echo '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
echo '</div>';
} else {
echo '<div class="alert alert-warning alert-dismissible fade show notif-alert" role="alert">';
echo '<strong>Error!</strong> An error occured, please try again!';
echo '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
echo '</div>';
echo "Error: " . $stmt->error;
}
在echo之后你可以看到div被插入的位置
<body>
<div class="alert alert-success alert-dismissible fade show notif-alert" role="alert"><span><strong>Success!</strong> User information updated successfully!</span><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>
<meta charset="utf-8">
是的,它总是在编译时运行。确保它只在您提交密码和电子邮件等输入值时运行(您可以通过提供 isset 条件来设置此场景,例如
if(isset($_POST['电子邮件']))
然后所有执行都应在提交表单后运行。 此外,您还应该为警报设置 javascript 超时。
Settimeout( () =>{
document.getElementsByClassName('alert').style.display='none'; }, 5000);