【发布时间】:2013-05-28 09:01:32
【问题描述】:
当用户通过带有激活码的链接访问站点时,他的帐户已激活(数据库中的值已更改),我想显示一些信息消息。为此,我使用$_SESSION['message'] = "activated" 重新加载页面(同时从 URL 中删除激活码)。信息消息块代码:
<? if ($_SESSION['message'] === "activated") {
ShowAlert('ActivatedOk-popup');
echo '
<div id="ActivatedOk-popup" class="info-popup">
<div class="popup-info-wrapper"><div class="leaflet-popup-close-button">×</div>
<div class="popup-header">'.ACTIVATION_POP_HEADER.'</div>
<div class="popupRecord1">
<p>'.ACTIVATION_POP_TEXT1.$_SESSION['name'].ACTIVATION_POP_TEXT2.'</p>
</div>
<button class="popup-btn close_but">'.ACTIVATION_POP_BTN.'</button>
</div>
</div>';
unset($_SESSION['message']);
}
?>
但我不明白为什么这个弹出窗口没有出现。如果我删除最后一行:$_SESSION['message'] = ""; 一切正常,但 Message 变量不为空,并且每个页面都会弹出。如何正确显示弹出窗口然后取消设置变量?
【问题讨论】:
-
你用过
session_start()吗? -
Phil 的评论 +1,您可能不需要相同的比较 (
===) 就等于 (==) -
避免使用 == 而不是 ===。
-
当然,会话开始了,没有UNSET,它工作得很好。没关系,如果我使用比较或等号。我不明白为什么在生成弹出消息之前未设置变量。
-
回显您的(检查)
$_SESSION['message']的值而不设置,它是否给出 "activated" 。
标签: php session variables unset