2017-02-09 3 views
0

сгенерировать случайное число в методе post_ads() затем сохранить его в $_SESSION['temp_id'], просто в вызове метода post_as_offline() с помощью redirect('ads/post_as_offline', 'refresh'), то $_SESSION['temp_id'] изменен и заменен новым случайным числом. Почему после перенаправления rand() вызывает и регенерирует и сохраняет новое значение?

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    class ads extends CI_Controller { 
    private $Data; 
    public function post_ads() 
    { 
    $this->common_data(); 
    $rand = rand(); 
    $_SESSION['temp_id'] = $rand ; // example $_SESSION['temp_id'] = 1000 ; 
    if(iSset($_POST['add'])) 
     { 
     // some code 
     redirect('ads/post_as_offline' , 'refresh'); 
     } 
     else 
     { 
     $this->load->view('add_ads_step2' , $this->Data); 
     } 

    } 
    public function post_as_offline() 
    { 
     $this->common_data(); 
     // will be $_SESSION['temp_id'] = 52635 ; rand() regenerat value after redirect 
     $this->load->view('post_as_offline_step',$this->Data); 
    } 

    } 

ответ

1

Может быть, ваша сессия изменится после последействия. попробуйте это:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    class ads extends CI_Controller { 
    private $Data; 
    public function post_ads() 
    { 
    $this->common_data(); 
     if(iSset($_POST['add'])) 
     { 
     // some code 
     redirect('ads/post_as_offline' , 'refresh'); 
     } 
     else 
     { 
     $rand = rand(); 
     $_SESSION['temp_id'] = $rand ; // example $_SESSION['temp_id'] = 1000 ; 

     $this->load->view('add_ads_step2' , $this->Data); 
     } 

    } 
    public function post_as_offline() 
    { 
     $this->common_data(); 
     // will be $_SESSION['temp_id'] = 52635 ; rand() regenerat value after redirect 
     $this->load->view('post_as_offline_step',$this->Data); 
    } 

    } 
0

Как я проверил случайным образом на до и после редиректа такие же .Вы можете легко проверить, получив в URL, что стоимость сеанса .Я проверил ваш код на тестовой странице, просто только удаление данных общего метода. Пожалуйста, проверьте, не пропустили ли вы свой вопрос. Пример: -

private $Data; 
public function post_ads() 
    { 
     $rand = rand(); 
     $_SESSION['temp_id'] = $rand ; // example $_SESSION['temp_id'] = 1000 ; 
     if(isset($_SESSION)) 
     { 
      redirect('test/post_as_offline?code='.$_SESSION['temp_id'] , 'refresh'); 
     } 
     else 
     { 
      $this->load->view('add_ads_step2' , $this->Data); 
     } 

    } 
    public function post_as_offline() 
    { 
     print_r($_SESSION);die; 
     $this->load->view('post_as_offline_step',$this->Data); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^