我有一个弹出窗体,用户可以在其中提供访问该页面的密钥。一旦用户提供了正确的密钥,我想将密钥放在会话变量中,并且只要会话处于活动状态,如果用户刷新页面,弹出窗口就不会出现增益。我试过的是
我的JQuery
<script>
$(document).ready(function() {
$('#submit').click(function(e) {
var key = $('#downloadkey').val();
var box_id = $('#box_id').val();
var dataString = {KEY:key, BID:box_id};
$.ajax({
url: "/mediabox/home/validate_key",
type: 'POST',
data: dataString,
success: function(msg) {
if(msg=="false"){
alert("Your download key is either wrong or you didn't provide it");
}
else{
$('#popupContact').hide();
$('#backgroundPopup').hide();
}
}
});
e.preventDefault();
});
});
</script>
我的家庭控制器validate_key功能
function validate_key(){
$key = strtolower($this->input->post('KEY'));
$id = $this->input->post('BID');
$query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id));
$row = $query->row();
$download_key = strtolower($row->downloadkey);
if($download_key == $key){
$_SESSION['download_key'] = $key;
$_SESSION['timeout'] = time();
}
else{
echo 'false';
}
}
在validate_key函数中,如果用户提供的密钥与数据库中的密钥匹配,我在会话变量中设置密钥。
我加载弹出窗口的脚本
if($download_key != null && !isset($_SESSION['download_key'])){?>
<script type="text/javascript">
$(document).ready(function(){
loadPopup();
});
</script>
}
loadpopup JS函数是
var popupStatus = 0;
//loading popup with jQuery magic!
function loadPopup(){
//loads popup only if it is disabled
if(popupStatus==0){
$("#backgroundPopup").css({
"opacity": "0.7"
});
$("#backgroundPopup").fadeIn(1000);
$("#popupContact").fadeIn(1000);
popupStatus = 1;
}
}
问题是,一旦我提供了正确的密钥,然后我刷新页面,它再次加载弹出窗口 在给出正确的密钥后,如何防止它反复加载?
提前致谢