сохранение переменной сеанса после session_destroy () - PullRequest
1 голос
/ 08 января 2011

из моего 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");
?>

Я хочу завершить текущий сеанс, а затем начать новый сеанс с одной из переменных из старого сеанса в новом сеансе.Я попытался добавить второй оператор session_start, но это не имело никакого эффекта.Что еще я могу сделать?

Спасибо

Редактировать: я решил перенаправить на новую страницу, на которой новый оператор session_start () создал новый сеанс

Ответы [ 3 ]

2 голосов
/ 08 января 2011

См. Ссылку:

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

это ошибка в php и патч.

1 голос
/ 08 января 2011

Если у вас есть только одна переменная, которую вы хотите сохранить, и вы абсолютно хотите уничтожить сеанс: сохраните переменную в локальной переменной, уничтожите сеанс, запустите сеанс, а затем перезагрузите переменную сеанса ...

$localvar = $_SESSION['variable'];
session_destroy();
session_start();
$_SESSOIN['variable'] = $localvar;
1 голос
/ 08 января 2011

Вы можете поместить переменную сеанса в обычную переменную, а затем уничтожить сеанс и вернуть его обратно в сеанс после создания нового.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...