繁体   English   中英

页面加载时的弹出框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM