根据值和会话显示警报
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据值和会话显示警报相关的知识,希望对你有一定的参考价值。
我想要完成的是,如果用户验证列为0,如果用户验证列为1则不会显示该消息,它将回显下面的消息。
所以我有它的工作,但如果他们关闭它我不希望它再次显示该会话。
$db = dbconnect();
$stmt = $db->prepare("SELECT * FROM users WHERE ID = ?");
$stmt->bind_param('s', $_SESSION['ID']);
$stmt->execute();
$result = $stmt->get_result();
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['ID'];
$verified = $row['Verified'];
if ($verified == 0) {
echo '
<div class="alert alert-warning alert-dismissible fade show" role="alert">
Your account has not been verified.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>';
return true;
} else {
return false;
}
}
答案
您应该设置一个会话变量,以根据从数据库中检索到的值显示警报,如下所示:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['verifymsg']) {
$_SESSION['VerifyMessage'] = false;
}
}
$db = dbconnect();
$stmt = $db->prepare("SELECT * FROM users WHERE ID = ?");
$stmt->bind_param('s', $_SESSION['ID']);
$stmt->execute();
$result = $stmt->get_result();
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['ID'];
if (!isset($_SESSION['VerifyMessage']) {
$_SESSION['VerifyMessage'] = ($row['Verified'] == 0) ? true : false;
}
if ($_SESSION['VerifyMessage']) {
echo '
<form method="POST" action="yourscript.php">
<input type="hidden" name="verifymsg" />
<div class="alert alert-warning alert-dismissible fade show" role="alert">
Your account has not been verified.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</form>';
return true;
} else {
return false;
}
}
在这里,我使用ternary operation设置一个名为'VerifyMessage'的会话变量(如果尚未设置)。我还在html中添加了一个名为<form>
的verifymsg
和隐藏输入。
当此脚本将verifymsg
视为post变量时,它会将会话变量设置为false
。这可以随心所欲地工作,例如使用ajax,但它显示了一个概念。
以上是关于根据值和会话显示警报的主要内容,如果未能解决你的问题,请参考以下文章