[英]A popup box on page load
我在项目中使用弹出框的功能。 当用户来到站点时,页面顶部弹出一个对话框,隐藏其余内容。 在该弹出窗口中,用户必须提供下载密钥。 如果用户有钥匙,他可以前进,否则他看不到其他任何东西。 当用户提供密钥时,他将转到主页。 现在的问题是,一旦用户在提供密钥后进入主页,当他再次单击标题时,页面将重新加载,并且弹出表单再次出现。 如果某些用户已经提供了下载密钥,如何防止它再次出现。 我在代码点火器中使用php。 我的密码
<?php if($download_key != null && !isset($_POST['popup'])){?>
<script type="text/javascript">
$(document).ready(function(){
loadPopup();
});
</script>
<?php } ?>
downlaod键是数据库列,而popup是一个隐藏的输入,当在弹出框上提交表单时设置。 弹出框上显示的形式为
<form name="form" method="post" onsubmit="return validateForm('<?php echo $download_key ?>')">
<div style="width:530px;">
<input style="display:none; height:25px;" id="downloadkey" name="downloadkey" type="text" />
<input style="display:none;" type="submit" id="submit" name="submit" value="<?php echo $variable['QUESTION_BUTTON']['value']?>"/>
</div>
</form>
有任何想法吗 ?
谢谢
您应该在页面加载开始时使用session_start()
编辑:改变了一点
session_start();
//check if key has already been seen:
if(isset($_SESSION['download_key']) && $_SESSION['download_key'] != null ...
// then if not check if the key is submitted
else if ( isset($_POST['popup']) ... // and other checks
// set session variable
$_SESSION['download_key'] = $key;
else
// load the ask for key page
设置一个会话变量,并检查它是否存在,因为它将出现在后续的页面加载中,只是跳过弹出窗口等。
<?php
session_start();
if ($download_key != null && !isset($_POST['popup'])) {
if ($_SESSION['key_ok']!=true) { //you should check if it's set first with isset()
echo '<script type="text/javascript">';
echo '$(document).ready(function(){';
echo 'loadPopup();';
echo '});';
echo '</script>';
}
if (key_is_correct) {$_SESSION['key_ok']=true}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.