2011-06-22 7 views
1

http://mydomain.comをリフレッシュすると、ページに表示されるランダムIDが生成されます。現在のURL IDをセッションに保存して次のサブミット時に更新する方法

例えば、http://mydomain.com 54を最初に生成し、リロードの際に、112等

私ができる、私はセッションにランダムに生成されたIDのそれぞれを保存したいので、その都度、それがリロード最後のものに戻ります。たとえば、セッションに初めて54を保存したときに、http://mydomain.comがリロードして112を生成すると、私は54にリンクすることができます。

私はHTTP_REFERERまたはREQUEST_URIを使用できません。バージョンは、一度しか保存していません。私は次のIDを見てそれを更新する方法を理解できません。

if(empty($_SESSION['lastURL'])) { 
     $_SESSION['lastURL'] = $submissionId; // $submissionId is randomly generated 
      } else { 
     echo $_SESSION['lastURL']; 
    } 

私の現在のコードです。次のIDを格納するためにセッションをどこで更新する必要がありますか?

誤って発砲した理由は、追加のAjaxリクエストを発し続けていたためです。そのたびにランダムに生成されたIDを取得していました。

は、私が(友人の助けを借りて)次のコードを使用して、それが毎回ランダムに発射する前にそれを設定することで考え出し:

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'){ 
    // Not an ajax request - just a normal page load 
    $_SESSION['lastid'] = $_SESSION['currentid']; 
    $_SESSION['currentid'] = $submissionId; 
} 

答えて

2

$_SESSION['lastURL']は一度だけempty()に設定されています。新しいIDを生成するたびにこの値を更新する必要があります(したがって、新しい "古い" IDにします)。

1

は、ファイルの先頭にsession_start()を持っていることを忘れないでくださいセッションが保存されているため、完全にアクセスできます。

1

あなたはすべてのIDを保存したい場合は、配列にそれらを配置する必要があります:セッションが開始されてから

if (!isset($_SESSION['url_list'])) 
{ 
    $_SESSION['url_list'] = array(); 
} 

$_SESSION['url_list'][] = $submissionId; 

// see all entries 
var_dump($_SESSION['url_list']); 

は今、あなたは、すべてのIDの歴史を持っています。

関連する問題