2016-04-23 32 views
0

Codeigniterフォームの検証は素晴らしいですが、フォームを検証する別のURLにリダイレクトするため、非常に問題があります。時にはURLにセグメントがあるためです。リダイレクトするとセグメントが失われます。それ以外の場合は、検証URLに直接入力します。私の場合の例mywebsite.com/class/login_validation。 リダイレクトなしで検証する方法、またはユーザーが検証URLに直接入力するのを防ぐ方法。 URLの直接入力を防止するためのcodeigniter:リダイレクトのない検証フォーム

マイビュー

<?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(); 
     ?> 

代わりusertname

+0

あなたはajaxを使用する必要があります。http://stackoverflow.com/questions/17699201/php-codeigniter-ajax-form-validationの重複のようです – wakqasahmed

答えて

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

再確認してください。このラインusername最も簡単な方法はあります$this->input->method();の返答をテストする== '投稿' If trueの場合、入力されたURLではありません。

リダイレクトでデータを保持する必要がある場合は、セッションユーザーデータを使用します。

0

の私のコントローラ

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'); 
     } 
    } 
関連する問題