PHP セッションの構造および多画面遷移

$_SESSION[$g_url][$ui][‘clients’][‘id’]
 $g_ulrは、セッションの個別IDで画面タグ単位で生成 日付時間秒ミリの9桁使用
 $uiはセッションの階層 画面単位で階層づけ
 clientsは画面単位の定義
 idは各項目

例 画面1(一覧検索)>>明細編集>>明細確認
  
画面1のINI処理で 
 $_SESSION[$g_url][$ui][‘url’]=’画面1’が存在するか
 なければ $ui=count($_SESSION[$g_url]で現在のセッション階層を確認し
 その下の階層に「画面1」を追加する
 $_SESSION[$g_url][0][‘url’に’画面1’がセットされる
 セット時だけ画面1のセッションをクリア

画面内の明細の選択で
 $_SESSION[$g_url][$ui][‘url’]=’画面2’が存在するか
 なければ $ui=count($_SESSION[$g_url]で現在のセッション階層を確認し
 その下の階層に「画面2」を追加する
 $_SESSION[$g_url][1][‘url’に’画面1’がセットされる
 セット時だけ画面2のセッションをクリア
 「画面1」のセッションから選択KEYを「画面2」の項目にセット

画面1に戻るときは
 array_pop($_SESSION[$g_url]);で最下層のセッションを破棄して
 画面1へ

例2。複数画面から同位置画面に遷移
 画面A一覧[gamenA1]からA明細[gamenA2]
画面B一覧[gamenB1]からA明細[gamenA2]へ

まずは画面AのINIで階層用のセッションgamenA1を確保処理
gamenA1セッションをクリア
$ui=selectURL($sestab,’gamenA1′);
$g_url=”‘”.$sestab.”‘”;
if($ui==-1)
{
sessein_creat($g_url);


次に画面A1で選択されたkeyを画面A1のセッションに保存し
画面A2のINIを呼び出す
画面A2のセッションを作り
直前の階層がgamenA1 かgamenB1か判断して
各keyをセット

/画面A2のセッションの有無
$ui=selectURL($sestab,'gamenA2');
$g_url="'".$sestab."'";
if($ui==-1)
{	//階層がなかればセッションを生成
	sessein_creat($g_url);
//直前のセッション
$ui=selectURL($sestab,'gamenA2');
$i=selectURL($sestab,'gamenA1');
if($i!=-1)
{   
    sessein_set($g_url,$ui,$i);
}else
{
    $i=selectURL($sestab,'gamenB1');
    if($i!=-1)
    {
        sessein_set_my_page1($g_url,$ui,$i);

}

戻る時は画面A2明細のedit、dspのcontorllerで
直前階層か判断し、セッション画面A2明細を廃棄して画面A1または画面B1へ

    array_pop($_SESSION[$g_url]);
    $i=selectURL($sestab,'gamenA1');
    if($i!=-1)
    {
        header('Location:routes.php?get=gamenA1_view'.'&sestab='.$sestab);
        break;
    }else
    {
        $i=selectURL($sestab,'gamenB1');
        if($i!=-1)
        {
            header('Location:routes.php?get=gamenB1_view'.'&sestab='.$sestab);
            break;
        }   
    }
    break;




カテゴリー php