Php Codeigniter проверки не работает для меня - PullRequest
1 голос
/ 14 ноября 2011

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

class User extends CI_Controller {

    function User() {
        parent::__construct();

        $this->view_data['base_url'] = base_url();
    }

    function index() {

        $this->register();
    }

    function register() {

        $this->load->library('form_validation');
        $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');
        if ($this->form_validation->run() == false) {
            $this->load->view('view_register', $this->view_data);
        } else {
            $username=$this->input->post('username');
        }
    }

}

, и это мой view_register.php (просмотр)

<body>
    <h1>User Registration</h1>
    please fill in following details
    <?php
    echo form_open(base_url().'user/register');
    ?>
    <?php
    $username = array(
        'name' => 'username',
        'id' => 'username',
        'value' => ''
    );
    $password = array(
        'name' => 'password',
        'id' => 'password',
        'value' => ''
    );
    $con_password = array(
        'name' => 'con_password',
        'id' => 'con_password',
        'value' => ''
    );
    $email = array(
        'name' => 'email',
        'id' => 'email',
        'value' => ''
    );
    ?>

    <ul>
        <li>
            <label>Username</label>
            <div>
                <?php echo form_input($username); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Email</label>
            <div>
                <?php echo form_input($email); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Password</label>
            <div>
                <?php echo form_password($password); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Confirm</label>
            <div>
                <?php echo form_password($con_password); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <div>
                <?php echo form_submit(array('name' => 'register'), 'Register'); ?>
            </div>
        </li>
    </ul>
    <?php echo form_close(); ?>
</body>

1 Ответ

1 голос
/ 14 ноября 2011

Поскольку вы не загружаете представление в случае правильной проверки, поэтому CI снова вызывает этот контроллер, но ничего не отображает:

function register() {

    $this->load->library('form_validation');
    $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');

    if ($this->form_validation->run() == false)
    {
        $this->load->view('view_register', $this->view_data);
    } else
    {
        $username=$this->input->post('username');
        $this->load->view('success');  // <------ put your view for success here
    }
}

Кроме того, вы должны открыть форму с этим, вместо вашего кода:

 echo form_open('user/register');

он сам определяет правильный URL (анологично site_url ());

Попробуйте также ввести echo form_error('username') под именем пользователя, чтобы отобразить ошибки проверки.

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