CodeIgniter - отображение сообщения об успехе или неудаче - PullRequest
4 голосов
/ 09 декабря 2011

Мне интересно, может ли кто-нибудь сообщить мне, как они обрабатывают сообщения об успехе / неудаче в CodeIgniter.

Например, что я делаю в тот момент, когда пользователь регистрируется на моем сайте, это то, что происходит в контроллере

if (!is_null($data = $this->auth->create_user( $this->form_validation->set_value('username'), $this->form_validation->set_value('password') ))) {
    // Redirect to the successful controller
    redirect( 'create-profile/successful' );
} else {
    // Redirect to the unsuccessful controller
    redirect( 'create-profile/unsuccessful' );
}

Затем в том же контроллере (create-profile) у меня есть 2 метода, которые похожи на следующие

function successful()
{
    $data['h1title'] = 'Successful Registration';
    $data['subtext'] = '<p>Test to go here</p>';

    // Load the message page
    $this->load->view('message',$data);
}

Проблема в том, что я могу просто зайти на site.com/create-profile/successful, и он покажет страницу.

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

Приветствия

Ответы [ 3 ]

6 голосов
/ 09 декабря 2011

Вы можете установить flashdata перед перенаправлением:

$this->session->set_flashdata('create_profile_successful', $some_data);
redirect( 'create-profile/successful' );

function successful(){
    if( FALSE == ($data = $this->session->flashdata('create_profile_successful'))){
        redirect('/');  
    }

    $data['h1title'] = 'Successful Registration';
    $data['subtext'] = '<p>Test to go here</p>';

    // Load the message page
    $this->load->view('message',$data);
}
5 голосов
/ 09 декабря 2011

есть причина, по которой вы не используете это:

if (!is_null($data = $this->auth->create_user( $this->form_validation->set_value('username'), $this->form_validation->set_value('password') ))) {
    $data['h1title'] = 'Successful Registration';
    $data['subtext'] = '<p>Test to go here</p>';

    // Load the message page
    $this->load->view('message',$data);
} else {
    $data['h1title'] = 'Unsuccessful Registration';
    $data['subtext'] = '<p>Test to go here</p>';

    // Load the message page
    $this->load->view('message',$data);
}

привет, stefan

2 голосов
/ 09 декабря 2011

Вместо перенаправления просто показывайте разные виды.

Вот пример кода:

if ($this->input->server('REQUEST_METHOD') == 'POST')
{
    // handle form submission
    if (!is_null($data = $this->auth->create_user( $this->form_validation->set_value('username'), $this->form_validation->set_value('password') )))
    {
        // show success page
        $data['h1title'] = 'Successful Registration';
        $data['subtext'] = '<p>Test to go here</p>';

        // Load the message page
        $this->load->view('message',$data)
    }
    else
    {
        // show unsuccessful page
        $data['h1title'] = 'Unsuccessful Registration';
        $data['subtext'] = '<p>Test to go here</p>';

        // Load the message page
        $this->load->view('message',$data)
    }
}
else
{
    // show login page
    $data['h1title'] = 'Login';
    $data['subtext'] = '<p>Test to go here</p>';

    // Load the message page
    $this->load->view('login',$data)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...