2011-02-09 11 views
3

私のアプリケーションにRecess Frameworkを使用しています&は、セッション処理に問題がありました。私はセッションにいくつかの値を格納する必要があります..私はセッションとセッションIDを作成することができます。しかし、別のページに移動するとすぐに、私はそれらを取り戻すことができません!!あなたのセッションを管理する方法を教えてください。 PHPのセッション処理はシンプルで単純ですが、私はこの権利を得ることができません! ..Recess!によるセッション処理

/* !Route GET,/*/ 
function index() { 
    . 
    . 
    session_start(); 
    $_SESSION['val'] = 'SomeValue'; 
    . 
    . 
} 

私の見解は、別のフォームを表示し、ユーザーが送信したときに、私もセッションのvalにアクセスする必要があるので、私はとして戻って値を取得しよう:私のホームコントローラで

私が持っている

/* !Route GET, /check */ 
function check() { 
    if(isset($_SESSION['val'])){ 
     . 
     . 
     . 
    }  
} 

しかし残念ながら、私はあればブロックを入力しないが..私は私のミスは私がセッションは、同様のsession_id()とチェックでそのブランク値を使用している表示しようとした が何であるかを見ることができないです()方法。

私は新しいセッションを作成するたびに、session_idも同じであることに気づきました。それはPHPのようなものですか?私が読んだ限り、彼らは異なっているはずです!私の意見で

答えて

1

、ここで私はそれが働いて得た方法である:

私はのsession_startを置きます( ) in recess-conf.phpそして今はすべてがうまくいくようです!

0

このようなセッションを開始するための機能を利用するために最善:あなたの例では

http://snipplr.com/view/41338/start-a-secure-session/

function startSession($session_name) { 
    session_name($session_name); 
    $ok = @session_start(); 
    if(!$ok){ 
     session_regenerate_id(true); // replace the Session ID 
     session_start(); // restart the session (since previous start failed) 
    } 
} 

のsession_startの第二の実行();必要とされている。多くのトレイルと凹部の枠組みのフォーラムで、他のコミュニティメンバーとの議論の後

/* !Route GET, /check */ 
function check() { 
    session_start(); 
    if(isset($_SESSION['val'])){ 
     . 
     . 
     . 
    }  
} 

またはマイ例えば

function startSession($session_name) { 
    session_name($session_name); 
    $ok = @session_start(); 
    if(!$ok){ 
     session_regenerate_id(true); // replace the Session ID 
     session_start(); // restart the session (since previous start failed) 
    } 
} 

/* !Route GET,/*/ 
function index() { 
    . 
    . 
    startSession('SID'); // SID is only for example you can use what you want 
    . 
    . 
    $_SESSION['val'] = 'SomeValue'; 
    . 
    . 
} 


/* !Route GET, /check */ 
function check() { 
     . 
     . 
     . 
    startSession('SID'); // SID is only for example you can use what you want 
     . 
     . 
     . 
    if(isset($_SESSION['val'])){ 
     . 
     . 
     . 
    }  
} 
+0

なぜcheck()でstartSession()を呼び出しますか?私はindex()で作成したセッションにアクセスしようとしています。index.phpにアクセスしています。申し訳ありませんが、私はあなたのロジックを取得できませんでした。 –

+0

http://php.net/manual/en/function.session-start.php ... session_start();セッションが開始された場合、またはセッションが存在する場合(index();で開始されたため、このように)、スクリプトは元のセッション – 000

関連する問題