Идея о логине скрипта - PullRequest
       7

Идея о логине скрипта

0 голосов
/ 11 октября 2011

На данный момент я думаю о скрипте входа в систему.Идея - когда вы вводите логин и пароль, они проверяют модель и, если логин и пароль верны, скрипт показывает сообщение о завершении процесса авторизации.Но если я выбрал echo $message; и я нахожусь на странице входа, kohana показывает ошибку - неопределенная переменная $ message.Но когда я нахожусь на странице, где определена переменная, все работает.Как реализовать эту идею.

РЕДАКТИРОВАТЬ!

class Controller_About extends Controller_Template {

public function action_index() {
    session_start();
    if (isset($_SESSION['lietotajvards'])) {

        if (!empty($_POST['virsraksts']) and !empty($_POST['saturs'])) {

            $name = Model::factory('index')->insert_names($_POST['virsraksts'], $_POST['saturs']);
            $result = $name;
            $this->template->site_name = Kohana::$config->load('common')->get('site_name');
            $this->template->site_description = Kohana::$config->load('common')->get('site_description');
            $this->template->page_title = 'About';
            $this->template->content = View::factory('about/about')->set('result', $result);
            $this->template->styles[] = 'index/index';
        } else {
            $this->template->site_name = Kohana::$config->load('common')->get('site_name');
            $this->template->site_description = Kohana::$config->load('common')->get('site_description');
            $this->template->page_title = 'About';
            $this->template->content = View::factory('about/about');
            $this->template->styles[] = 'index/index';
        }
    } else {
        if (!empty($_POST['lietotajvards']) and !empty($_POST['parole'])) {
            $user_model = Model::factory('index')->valide($_POST['lietotajvards'], md5($_POST['parole']));
            foreach ($user_model as $d) {
                if ($_POST['lietotajvards'] == $d['lietotajvards'] and md5($_POST['parole']) == $d['parole']) {
                    $_SESSION['lietotajvards'] = $_POST['lietotajvards'];
                    $this->template->content = View::factory('login/index')->set('message', 'Ielogošanās veiksmīga!');
                    echo '<meta http-equiv="refresh" content="5" url="http://127.0.0.1/about">';
                }
            }
        }
        $this->template->site_name = Kohana::$config->load('common')->get('site_name');
        $this->template->site_description = Kohana::$config->load('common')->get('site_description');
        $this->template->page_title = 'About';
        $this->template->content = View::factory('login/index');
        $this->template->styles[] = 'index/index';
    }
}}

У меня проблема только с переменной $ message.

<?php echo $message; ?>
<form action="" method="post">
    <input type="text" name="lietotajvards" id="" />
    <input type="password" name="parole" id="" />
    <input type="submit" value="Nosūtīt datus!" />
</form>

1 Ответ

1 голос
/ 12 октября 2011

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

$this->template->content = View::factory('login/index')->set('message', 'Ielogošanās veiksmīga!');

на

$message = 'Ielogošanās veiksmīga!';

, а затем в конце измените загрузку представления на

$this->template->content = View::factory('login/index')->bind('message',$message);

Использование метода привязки в представлении передастнулевое значение для представления, если переменная не была установлена ​​внутри вашего контроллера.

...