0

ユーザーがページにアクセスするためのキーを提供するポップアップフォームがあります。ユーザーが正しいキーを提供したら、キーをセッション変数に入れたいと思います。ユーザーがページを更新してもセッションがアクティブである限り、ポップアップは表示されません。私が試したことは

私の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;
 }
}

問題は、正しいキーを指定してからページを更新すると、ポップアップが再度読み込まれることです。正しいキーを指定した後、ポップアップが何度も読み込まれないようにするにはどうすればよいですか?

前もって感謝します

4

0 に答える 0