CodeIgniter добавить сегменты URI - PullRequest
1 голос
/ 29 февраля 2012

Я создал форму входа с CodeIgniter. Чтобы проверить форму, я отправляю неверные данные, получаю верную информацию и форма отображается снова. Если я исправлю ошибки и повторно отправлю сегмент uri, он добавляется к URL.

Итак, я вызываю приложение с localhost/myapp, отображается форма входа. При отправке URL-адрес изменить на localhost/myapp/controller/authenticate. При повторной отправке URL-адрес меняется на localhost/myapp/controller/authenticate/controller/authenticate

В чем здесь проблема?

View

<form action="<?php echo base_url();?>/welcome/authenticate" method="post" id="loginfrm">
<input type="text" name="username" /><?php echo form_error('username', '<div class="error">', '</div>'); ?><br />
<input type="password" name="password" /><?php echo form_error('password', '<div class="error">', '</div>'); ?><br />
    <input type="submit" value="Login" />
</form>

контроллер

public function index()
{
    $this->load->view('welcome_message');
}

public function authenticate()
{
    $this->form_validation->set_rules('username', 'Username', 'trim|required');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');

    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view('welcome_message');
    }
    else
    {
        echo $this->input->post('username') . " -->> " . $this->input->post('password');
    }
  }
  }

1 Ответ

1 голос
/ 29 февраля 2012

Всегда используйте перенаправление в функции, где обрабатываются формы, это предотвращает повторную отправку формы в вашем случае, если все работает нормально, и ваше представление загружается, когда пользователь пытается обновить страницу, ему будет предложено повторно отправить форму.Функция перенаправления изменяет URL в адресной строке браузера, поэтому у пользователя больше не будет запрашиваться повторная отправка формы.

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