как исправить validation_errors (); сообщение об ошибке функции в поле пароля? - PullRequest
0 голосов
/ 02 апреля 2020

Я изучаю codeigniter 3 (продолжаю Курс КИ Эдвина Диаса , и я кодирую систему входа в систему . У меня есть два метода контроллера, называемые index и login . Для этого я использую библиотеку form_validation , но моя проблема заключается в отображении сообщений об ошибках в поле password . Оно всегда показывает сообщение об ошибке ** Поле пароля обязательно. ** даже если я отправляю пароль. Я вставляю код ниже:

public function login(){
 $this->form_validation->set_rules('name','Username','trim|required|min_length[3]');
 $this->form_validation->set_rules('password','Password','trim|required|min_length[3]');

 if($this->form_validation->run() == FALSE){

 $data = array('errors'=> validation_errors() );
   $this->session->set_flashdata($data);
    redirect('home/index');

 }
 else{

 }

здесь login_view. php код

    <h1>Login Form</h1>

<?php $attributes= array('id' =>'login_form' ,'class'=>'form-horizontal' ); ?>
<?php if($this->session->flashdata('errors'):?>
      <?php echo $this->session->flashdata('errors');?>
 <?php endif; ?>

<?php echo form_open('home/login',$attributes);?>
    <?php echo form_label("Username") ;?>
    <div class="form-group">
    <?php $data = array('class'=>'form-control','name'=>'name','placeholder'=>'enter username');?>
    <?php echo form_input($data); ?>
</div>

    <?php echo form_label("Password") ;?>
<div class="form-group">
    <?php $data = array('class'=>'form-control','password'=>'password','placeholder'=>'enter password');?>
    <?php echo form_password($data); ?>
</div>
<?php 
$data = array('class'=>'btn btn-primary','name'=>'submit','value'=>'login');?>
    <?php echo form_submit($data); ?>

<?php echo form_close(); ?>

Может кто-нибудь сказать, почему поле пароля делает это и как это исправить?

PS : Многие говорят, что codeigniter 3 не поддерживает php версию 7.3.12, в то время как тот же код отлично работает на php версии 7.2.5

1 Ответ

0 голосов
/ 02 апреля 2020

Похоже, вы не установили имя для ввода пароля.

СОВЕТ: Просмотрите исходный код HTML через веб-браузер, чтобы увидеть, что было сгенерировано. Это всегда дает вам хорошее представление о том, что не работает.

Поэтому вам нужно изменить 'password'=> 'password' на 'name'=>'password

Исходная строка

<?php $data = array('class'=>'form-control','password'=>'password','placeholder'=>'enter password');?>

должно стать

<?php $data = array('class'=>'form-control','name'=>'password','placeholder'=>'enter password');?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...