2012-06-25 5 views
1

Привет, я пытаюсь получить мою регистрационную форму для показа на каждой странице моего сайта, однако я изо всех сил стараюсь это делать, поскольку я продолжаю получать ошибки «Неопределенное имя пользователя и пароль» на других страницах, которые не используют контроллер, который имеет метод «login()» in.Создание формы регистрации на каждой странице?

Я использую главный контроллер (MY_Controller), который расширяет мои другие контроллеры.

MY_Controller Файл:

class MY_Controller extends CI_Controller { 

    public $template; 
    public $template2; 

    public function __construct() { 
     parent::__construct(); 
     $this->template = 'templates/default'; // Set default layout 
     $this->template2 = 'templates/other'; 
    } 
} 

Пользователи Controller - Войти Часть:

class Users extends MY_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->helper('form'); // Load the form helper to allow the use of forms. 
    } 

    /* Other register function is here*/ 

    public function login(){ 
     $data['page'] = 'login'; 

     $data['username'] = array(
      'name' => 'username', 
      'placeholder' => 'Enter username' 
     ); 
     $data['password'] = array(
      'name' => 'password', 
      'type' => 'password', 
      'placeholder' => 'Enter password' 
     ); 

     $this->load->view($this->template, $data); 
    } 

Часть шаблона по умолчанию Файл:

<div id="container"> 

     <div id="contentArea"> 
      <h2 class="pageTitle"><?php echo isset($title) && strlen($title) > 1 ? $title : 'Unknown Title'; ?></h2> 
      <?php $this->load->view($page); ?> 
     </div> 
     <div id="aside"> 
      <h3>Login</h3> 
      <?php $this->load->view('login'); ?> 
     </div> 
    </div> 

Если у кого-нибудь есть идеи относительно того, как я могу решить эту проблему, пожалуйста, дайте мне знать, спасибо заранее.

+0

«Я пытаюсь получить свою регистрационную форму для показа на каждой странице моего сайта». Вы хотите поместить div логина на каждую страницу или хотите заставить пользователя войти в систему, чтобы просмотреть страницу, если он не аутентифицирован? –

ответ

0

Существует много способов решить эту проблему. Лично я создаю пользовательский помощник, который автоматически загружается и запускает большинство моих просмотров.

Таким образом, вместо $this->load->view($this->template, $data);

Я бегу load_index('login', $data)

хелперы/general_helper.php

function load_index($content, $data = array()) { 

    $CI =& get_instance(); 

    $data += array('page'  => $content, 
        'username' => array('username' => 'username', 
             'placeholder' => 'Enter username'), 
        'password' => array('name' => 'password', 
             'type' => 'password', 
             'placeholder' => 'Enter password')); 

    $CI->load->view($CI->template, $data); 

} 

CodeIgniter дает вам тысячи альтернатив. Подумайте об этом и выберите тот, который вы предпочитаете.

Смежные вопросы