2016-03-25 14 views
-1

ich auf einer Seite, einige Daten angezeigt werden müssen nur 20 Minuten .für diesem Zweck ich die TempData in codeigniter bin mitCodeigniter: Sitzung TempData auf Sitzung zerstören entfernt

Tatsächlich ist die TempData ist ein Session-Daten, und ich bin markieren sie es als TempData mit mark_as_temp Methode

Hier ist mein Code

public function final_result() 
    { 
    //make the session data as tempdata  
     $this->session->mark_as_temp(
      array('hotel_basic','user_ht_bk_data','hotel_info','hotel_search_query','booking_response','ht_star_rating','each_rooms'),1200  
     );  
     //after marking as tempdata destroy the original sessiondata 
     $this->session->sess_destroy(); 
    //read from the tempdata 
     $data['result']=$this->session->tempdata('user_ht_bk_data'); 

     $this->view('final-view',$data); 
    } 

Aber der $data['result'] Willen gibt Nullwert.

Gemäß Codediter Dokumentation sess_destroy() niemals die Tempdata entfernen.

Aber in meinem Fall ist die tempdata wenn session_destroy

+0

Welche Version Sie verwenden - in der aktuellen Dokumentation steht: Nachdem der Wert abläuft, oder die Sitzung abläuft oder gelöscht wird, wird der Wert automatisch entfernt. look @: https://www.codeigniter.com/user_guide/libraries/sessions.html#tempdata Wenn Sie also die Sitzung zerstören, wird der Wert entfernt – sintakonte

+0

CI Version 3.0.3 –

+0

@shammon Ah, Sie laufen PHP 7 ? – MackieeE

Antwort

-1

, dass, weil die Daten als TempData zuvor in der Sitzung muss bereits über einen Ausgang gesetzt werden soll Durchführung entfernt. Wie stated in the documentation Sie so etwas wie zu versuchen brauchen:

$_SESSION['user_ht_bk_data'] = 'Test string'; // Or use set_tempdata with $this->session->set_tempdata('user_ht_bk_data', 'Test string', 300); 
$this->session->mark_as_temp('user_ht_bk_data', 1200); // No need to use this if you used set_tempdata(); 
$this->session->sess_destroy(); 
$data['result']=$this->session->tempdata('user_ht_bk_data'); 
+0

das gleiche ist, ich bin nur verwendet Unterschied ist ein Argument in 'mark_as_temp' ist ein Array –

+0

Ich sehe nicht Ihren Code Sitzung Daten hinzufügen. Bitte posten Sie alle relevanten Codes, da könnte etwas anderes Auswirkungen haben. – Technoh

1

Sobald Sie sess_destroy() verwenden, werden alle Sitzungsdaten (einschließlich flashdata und TempData) wird dauerhaft zerstört werden und Funktionen werden während der gleichen Anfrage unbrauchbar nachdem Sie die Sitzung zerstört haben.

Destroying a Session In Codeigniter

Lösungen

  1. anzeigen Endergebnisses wie gewohnt (ohne Sitzung zu zerstören) und machen countdown with JavaScript Sitzung in 20 Münzstätten zu zerstören.
  2. Use cookies
+0

Ok so, wie kann ich mein Problem lösen –

+0

@shammon überprüfen Antwort –

+0

Lassen Sie mich es versuchen :) –