Динамическая навигация в CodeIgniter - PullRequest
1 голос
/ 21 сентября 2009

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

Например, я хотел бы иметь форму входа, которая будет перенаправлять на «страницу успеха» или «страницу неудачного входа».

Где я должен поставить эту функциональность?

Ответы [ 2 ]

3 голосов
/ 21 сентября 2009

Хорошо, поэтому для этого примера входа в систему вам понадобятся Помощник по формам , Класс проверки форм и URL Helper .

class Login extends MY_controller {

function index()
{
    $this->load->helper('url');
    $this->load->helper('form');
    $this->load->library('form_validation');

    // some simple rules
    $this->form_validation->set_rules('username', 'Username', 'required|alpha_dash|max_length[30]');
    $this->form_validation->set_rules('password', 'Password', 'required');
    if ($this->form_validation->run() == FALSE) {
        // This will be the default when the hit this controller/action, or if they submit the form and it does not validate against the rules set above.
        // Build your form here
        // Send it to a login view or something
    } else {
        // The form has been submitted, and validated
        // At this point you authenticate the user!!
        if ($userIsAuthenticated) {
            redirect('controller/action'); //anywhere you want them to go!
        } else {
            // not authenticated...in this case show the login view with "bad username/password" message
        }
    }
}

TL; др

Используйте функцию redirect () в помощнике по URL для отправки пользователя на другие страницы на основе логики в вашем контроллере.

0 голосов
/ 21 сентября 2009

Как правило, в среде MVC, такой как Codeigniter, логика для динамической навигации преформ будет находиться в контроллере.

Пример: (в псевдокоде со вкусом php)

<?php
class Blog extends Controller {

    function login($username, $password)
    {
        if ($username and $password are correct) {
                    $this->load->view('success');
                    return;
                }

        $this->load->view('fail', $data);
    }
}
?>

На самом деле я не использую Codeigniter или PHP, но у меня есть опыт работы с MVC на других языках. Также из-за моей неопытности в языке / фреймворке, пожалуйста, не используйте приведенный выше код ... Это был только пример. : D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...