0

コードを 1 回だけ実行する方法。
私は zencart Web サイトを開発しています。ユーザーが初めてサイトを開いたときに、php にサイト設定情報を更新させたいのですが、その後はこれらのコードを実行しません。どうやってするの?

<?php 

    //how to let codes runs only one time.
    //cookie and session? 
    function first_time_run(){
        //lot of code runs when user  open my site at first time in browser (such  as ie ,firefox)
        //but when it go to other page of my site or reenter my same page ,these codes will not run any more;
        //but if user reopen the browser , then enter my site ,thes codes will runs again
    }

    if($what){
        first_time_run();
    }

?>
4

2 に答える 2

1

あなたの要件では、shipluのソリューションが機能する場合があります。ただし、コードを 1 回だけ実行する場合 (つまり、顧客が最初にサイトにアクセスしたときに何かを実行し、その後は実行しない場合) は、何らかのユーザー識別子をデータベースに保存する必要があります。セッションのみを使用する場合、ユーザーのセッションが終了するとすぐに (ユーザーがサイトを離れる、ブラウザーを閉じるなど)、そのセッション変数は存在しなくなります。次回その顧客がサイトにアクセスしたときに、スクリプトが再び実行されます。

ユーザーがサイトを離れた後も保持される Cookie を使用することもできますが、それでも制限があります。Cookie には有効期限が必要です (1 年後であっても)。その Cookie の有効期限が切れると、同じ顧客に対してそのスクリプトが再度実行されます。さらに、ユーザーは Cookie をクリアしたり、別のコンピューターを使用したりして、first_time_run チェックを無効にすることができます。

結論として、永続的な唯一の解決策は、ある種の顧客 ID をデータベースに保存し、ユーザーがサイトにアクセスするたびにそのフィールドを確認することです。

于 2012-12-30T08:08:38.700 に答える
1

セッション変数を使用します。

if(isset($_SESSION['NEEDRUN'])){
 // run it
 // remove the session variable.
 unset($_SESSION['NEEDRUN']);
}

これは、セッション変数が設定されている場合にのみ実行されます。

于 2012-12-30T08:02:26.357 に答える