2016-04-23 17 views
0

Codegutinformvalidierung ist nett, aber es ist sehr beunruhigt, da es zu einer anderen URL umleitet, um das Formular zu validieren. Weil wir manchmal das Segment in der URL haben. Umleiten wird das Segment verlieren. Und in anderen Fällen Benutzer geben Sie direkt an die Validierungs-URL ein. Das Beispiel in meinem Fall mywebsite.com/class/login_validation. So, wie die Validierung ohne Umleitung oder verhindern Sie, dass Benutzer direkt in die Validierungs-URL eingeben.coderigniter: Validierungsformular ohne Weiterleitung

Meine Ansicht

<?php 
     echo validation_errors(); 
     echo form_open('login_validation'); 
     echo form_label('Username'); 
     echo form_input('username',$this->input->post('username')); 
     echo form_label('Passowrd'); 
     echo form_password('password',$this->input->post('password')); 
     echo form_submit('submit','Login'); 
     echo form_close(); 
     ?> 

Mein Controller

function login() { 
     $this->load->helper('form'); 
     $this->load->view('page/login'); 
    } 

    function login_validation() { 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('username', 'User Name', 'required|xss_clean|callback_check_user'); 
     $this->form_validation->set_rules('password', 'Password', 'required|xss_clean'); 
     if ($this->form_validation->run()) { 
      $newdata = array('username' => $this->input->post('usertname'), 
       'logged_in' => TRUE 
      ); 
      $this->session->set_userdata($newdata); 
      redirect('dashboard'); 
     } else { 

      $this->load->view('page/login'); 
     } 
    } 
+0

müssen Sie Ajax verwenden, scheint wie ein mögliches Duplikat von http://stackoverflow.com/questions/17699201/php-codeigniter-ajax-form-validation – wakqasahmed

Antwort

0
$newdata = array('username' => $this->input->post('usertname') 

bitte diese Zeile username statt usertname

0

Der einfachste Weg, die direkte Eingabe der URL erneut überprüfen, um zu verhindern, ist um die Rückkehr von $this->input->method(); == 'post' zu testen True, dann ist es keine eingegebene URL.

Verwenden Sie Sitzungsbenutzerdaten, wenn Daten über eine Weiterleitung persistent sein sollen.