2016-05-20 17 views
0

Ist das normal, $this->session->set_userdata() gibt null zurück? Mein Controller ist das.Codeigniter: Set_uederdata, die NULL zurückgibt

function set_supplier() { 

    //UNSET THE OLD DATA 
    if($this->session->userdata('supplier_data')) { 
     $this->session->unset_userdata('supplier_data'); 
    } 

    $supplier_id = $this->encrypt->decode($this->input->post('supplier')); 

    $sess_array = array();   
    $sess_array = array(
      'id' => $supplier_id     
    ); 

    $process = $this->session->set_userdata('supplier_data', $sess_array); 

    if($process) { 
      //SUCCESS 
      $this->session->set_flashdata('success', 'You have set the supplier!'); 
      redirect($_SERVER['HTTP_REFERER'], 'refresh'); 
     } else { 
      //ERROR 
      $this->session->set_flashdata('error', 'Oops! An Error has Occured!'); 
      redirect($_SERVER['HTTP_REFERER'], 'refresh');    
    } 

} 

Ich habe einfach var_dump($process); zu zeigen, was los ist, und es wird NULL

Was zeigt Ich möchte eine Nachricht geschehen soll zurückzukehren, wenn $process wahr ist.

Antwort

-1

Haben Sie das versucht? wird die Bedingung direkt gesetzt, wenn Benutzerdaten gesetzt sind.

if ($ this-> Session-> set_userdata ('supplier_data', $ sess_array))

0

$this->session->set_userdata('data_here');kehrt nicht ein boolean auf Erfolg oder Misserfolg.

Um zu überprüfen, dass die Benutzerdaten festgelegt sind, verwenden Sie $this->session->has_userdata('some_name');.

Weitere Informationen can be found in the docs

0

Das wird nicht funktionieren, weil set_userdata kein Ergebnis zurück. Nehmen Sie einen Blick auf die code of function

public function set_userdata($data, $value = NULL) 
{ 
    if (is_array($data)) 
    { 
     foreach ($data as $key => &$value) 
     { 
      $_SESSION[$key] = $value; 
     } 
     return; 
    } 
    $_SESSION[$data] = $value; 
} 

Wie man deutlich sehen kann, ist diese Funktion liefert keinen Wert.

0
function set_supplier() { 

    //UNSET THE OLD DATA 
    if($this->session->userdata('supplier_data')) { 
     $this->session->unset_userdata('supplier_data'); 
    } 

    $supplier_id = $this->encrypt->decode($this->input->post('supplier')); 

    $sess_array = array();   
    $sess_array = array(
      'id' => $supplier_id     
    ); 

    $this->session->set_userdata('supplier_data', $sess_array); 

    if($this->session->userdata('supplier_data')) { 
      //SUCCESS 
      $this->session->set_flashdata('success', 'You have set the supplier!'); 
      redirect($_SERVER['HTTP_REFERER'], 'refresh'); 
    } else { 
      //ERROR 
      $this->session->set_flashdata('error', 'Oops! An Error has Occured!'); 
      redirect($_SERVER['HTTP_REFERER'], 'refresh');    
    } 

} 
0

wahrscheinlich vergessen haben

$this->load->library('session'); 

Die erforderliche Sitzung Bibliothek in Ihrem Controller enthalten.

0
$this->session->set_userdata() 

Funktion nichts Rückgabewert. Es wird für den Speicher-Sitzungswert verwendet. Wenn Sie den Sitzungswert erhalten möchten, dann benutzen Sie diese Funktion $this->session->userdata('session_name'); Ich habe Änderungen in Ihrem Skript, bitte überprüfen Sie jetzt ...

function set_supplier() { 

//UNSET THE OLD DATA 
if($this->session->userdata('supplier_data')) { 
    $this->session->unset_userdata('supplier_data'); 
} 

$supplier_id = $this->encrypt->decode($this->input->post('supplier')); 

$sess_array = array();   
$sess_array = array(
     'id' => $supplier_id     
); 

$this->session->set_userdata('supplier_data', $sess_array); 

$process = $this->session->userdata('supplier_data'); 

if($process) { 
     //SUCCESS 
     $this->session->set_flashdata('success', 'You have set the supplier!'); 
     redirect($_SERVER['HTTP_REFERER'], 'refresh'); 
    } else { 
     //ERROR 
     $this->session->set_flashdata('error', 'Oops! An Error has Occured!'); 
     redirect($_SERVER['HTTP_REFERER'], 'refresh');    
    } 
} 
Verwandte Themen