0

プロジェクトでポップアップ ボックスの機能を使用しています。ユーザーがサイトにアクセスすると、ページの上部にポップアップ ボックスが表示され、残りのコンテンツが非表示になります。そのポップアップフォームで、ユーザーはダウンロードキーを提供する必要があります。ユーザーがキーを持っていれば、先に進むことができます。ユーザーがキーを提供すると、メイン ページに移動します。問題は、ユーザーがキーを提供した後にメイン ページにアクセスし、ヘッダーをもう一度クリックすると、ページがリロードされ、ポップアップ フォームが再び表示されることです。一部のユーザーが既にダウンロード キーを提供している場合、再度表示されないようにするにはどうすればよいですか。コードイグナイターでphpを使用しています。私のコード

<?php if($download_key != null && !isset($_POST['popup'])){?>
    <script type="text/javascript">
        $(document).ready(function(){  
                loadPopup();    
        });  
    </script>
<?php } ?>

ダウンロードキーはデータベース列であり、ポップアップはポップアップボックスでフォームが送信されたときに設定される非表示の入力です。ポップアップボックスに表示されるフォームは次のとおりです

<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>

何か案は ?

ありがとう

4

2 に答える 2

0

セッション変数を設定し、それが存在するかどうかを確認します。これは、後続のページロードで発生するため、ポップアップなどをスキップするだけです.

<?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}
    } 
?>
于 2012-04-18T10:37:49.227 に答える
0

ページロードの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
于 2012-04-18T10:35:54.353 に答える