2011-01-08 5 views
1

session_destroy後にセッション変数を()保存私のlogout.phpから

<?php require_once("includes/session.php"); ?> 
<?php require_once("includes/functions.php"); ?> 
<?php 
    if (isset($_SESSION['colony_id'])) 
    $cookie = $_SESSION['colony_id'] ; 
    $_SESSION = array(); 
    if(isset($_COOKIE[session_name()])) { 
    setcookie(session_name(), '', time()-42000, '/'); 
    } 
    session_destroy(); 
    //this fails- session_start() ; 
    if (!empty($cookie)) 
     $_SESSION['colony_id'] = $cookie ;  
    // redirect_to("login.php?logout=1"); 
?> 

私は新しいの古いセッションからの変数の一つで、現在のセッションを終了し、新しいセッションを開始したいですセッション。 2番目のsession_startステートメントを追加しようとしましたが、それは効果がありませんでした。他に何ができますか?

おかげ

編集:私は新鮮でsession_start()ステートメントは、あなたが通常の変数にセッション変数を入れ、その後、破壊する可能性が、新しいセッション

+0

では、代わりにセッション変数を消去できます。 $ _SESSION = array() – dqhendricks

+0

別の 'session_start'をどのように追加しても効果はありませんでしたか?期待したことをどうやってテストしましたか?あなたはどんなふうに行動しましたか? – Gumbo

+0

新しいセッションCookieが作成されたかどうかを確認しました。そうではありませんでした。 –

答えて

2

このリンクを参照してください:それはPHPのバグだと、それはパッチを持っている

http://bugs.php.net/bug.php?id=38042

を。

+0

。ありがとうございました –

1

を作成した上で、新しいページにリダイレクトすることを決定しましたセッションを作成し、新しいセッションを作成した後でセッションに戻します。

+0

偉大な心は似ていると思います:) – CarpeNoctumDC

+1

これは私が試したものですが、second_session()のstart文は新しいセッションを開始しないようです。それを説明する –

1

保存したい変数が1つあり、絶対にセッションを破棄したい場合: 変数をローカル変数に保存し、セッションを破棄してセッションを開始し、セッション変数をリロードします。

$localvar = $_SESSION['variable']; 
session_destroy(); 
session_start(); 
$_SESSOIN['variable'] = $localvar; 
関連する問題