2016-12-01 3 views
1

ich einen Controller haben, wo ich Daten entweder per GET oder POST entweder jederzeit gesendet werden, aber nicht beide, weil dieser i Fehler erhaltencodeigniter wenn keine GET-Look für POST

Nachricht: Undefined index: userid

Dies ist entweder aufgrund POST oder GET hängt davon ab, was man nicht gefunden wird.

Wie kann ich eine Aussage hinzufügen, so dass, wenn kein POST gefunden wird, nach GET gesucht wird und der Fehler nicht angezeigt wird?

MEIN CODE

 public function index() 
    { 

     $this->session->userdata('user_id'); 
     $userID = $this->session->userdata('userid'); 

//  var_dump($userID); 
     $this->session->set_userdata('user_id', $_POST['userid']); 
     $this->session->set_userdata('user_id', $_GET['userid']); 

     $data['tests'] = simplexml_load_file("tests/tests.xml"); 
     $this->load->view('selecttest',$data); 
    } 

} 
+1

prüfen Referenz für post_get Eingangs Helfer https://www.codeigniter.com/user_guide/libraries/input.html#CI_Input::post_get – Rishi

Antwort

0

Wechsel:

$this->session->set_userdata('user_id', $_POST['userid']); 
    $this->session->set_userdata('user_id', $_GET['userid']); 

An:

$this->session->set_userdata(
    'user_id', 
    (
     $this->input->get('userid') == null ? 
     $this->input->post('userid') : 
     $this->input->get('userid') 
    ) 
); 
0

können Sie versuchen, mit Ternary Operator.

$user_id = isset($_GET['userid']) && ($_GET['userid']!= '') ? $_GET['userid'] : (isset($_POST['userid']) && ($_POST['userid']!='') ? $_POST['userid'] : null); 
$this->session->set_userdata('user_id', $user_id); 

Quick Links

Verwandte Themen