Создание формы входа в CodeIgniter на основе библиотеки Ion Auth

Я все еще учусь в CodeIgniter.

Я хочу создать форму входа в приложение codeigniter на основе библиотеки Ion Auth.

Я установил библиотеку, следуя инструкциям, и она отлично работает при переходе к auth/login, auth/create_user, auth/logout и т. д.

Однако мне не нужна отдельная страница для входа в систему, я хотел бы встроить форму на свою домашнюю страницу. Когда я использую представленный образец входа в систему на своей домашней странице, я получаю следующие ошибки:

  • Сообщение: Неопределенная переменная: сообщение
  • Сообщение: Неопределенная переменная: идентификатор
  • Сообщение: Неопределенная переменная: пароль

Я понимаю, что вышеуказанные переменные не определены, на мой взгляд, я просто не могу понять, где и как они должны быть определены, и почему они нормально работают в предоставленном образце, который поставляется с библиотекой?


person farjam    schedule 11.03.2012    source источник


Ответы (2)


config/routes.php

$route['login/check'] = 'auth/my_front_end_login';

просмотреть

<?php echo form_open('login/check'); ?>

<fieldset>
    <legend>login Credentials<legend>

    <label for="identity">&lowast; Identity</label>
    <input type="text" name="identity" id="identity" value="<?php echo set_value('identity');?>" />
    <?php echo form_error('identity');?>

    <label for="password">&lowast; Password</label>
    <input type="password" name="password" id="password" value="<?php echo set_value('password');?>" />
    <?php echo form_error('password');?>

    <label for="message">&lowast; Message</label>
    <input type="text" name="message" id="message" value="<?php echo set_value('message');?>" />
    <?php echo form_error('message');?>
</fieldset>

<?php echo form_close();?>

контроллеры/авторизация

public function my_front_end_login(){
   if($this->form_validation->run('login_frontend')) // uses config/form_validation.php
   {
       //validation passed, now attempt login via ION_AUTH
       //open ION_Auth library file and see what the login method requests in its params. 
      if(ION_Auth::login($params)) // Im not familiar with it
      {
         //login success
      }
      else
      {
         //login failure
      }
   }
   else
   {
       $this->index();
   }
}
person Philip    schedule 12.03.2012
comment
Спасибо, это работает. Тем не менее, я до сих пор не знаю, почему образец представления не жалуется на эти переменные, а мое представление — да. После небольшого дополнительного исследования похоже, что ci_vars (который содержит эти переменные: сообщение, личность, ...) загружается в образце представления, но не в моем представлении. Еще раз спасибо за ваше время. - person farjam; 12.03.2012
comment
Как я уже сказал, я не знаком с ION_Auth, но проблема может заключаться в том, как направлена ​​ошибка проверки формы. В приведенном выше случае я просто вызываю метод $this-›index(). Поэтому переменные set_value() доступны в этой области. то есть: домашняя страница - person Philip; 12.03.2012

Загружаете ли вы нужные библиотеки в контроллер, связанный с представлением, куда вы хотите встроить форму входа, например, «form_validation», если вы используете, например, form_input ($ message), ... в любом случае вы можете избежать этого, проверив, если $ var is_set .

person Nemanja Srećković    schedule 12.03.2012
comment
form_validation загружается в мой конструктор. Я могу использовать isset, чтобы избежать этих ошибок, мне просто любопытно, почему форма отлично работает в представленном образце, но не в моем собственном представлении. - person farjam; 12.03.2012