В настоящее время я разрабатываю систему в CodeIgniter, которая требует аутентификации пользователя через логин и регистрацию в качестве базы для использования остальной системы. У меня возникала проблема 404 Not Found в моей системе, когда я пытаюсь вызвать функцию Controller, это особенно распространено при отправке форм. Я разместил свой соответствующий код из моего контроллера, модели, вида, маршрутов и Htaccess ниже. Я не совсем уверен, что является причиной ошибки 404, любая помощь будет принята с благодарностью.
Контроллер:
// handles register page
public function register() {
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = "Register";
$this->form_validation->set_rules('fullname','Full Name','required');
$this->form_validation->set_rules('accountid','Account ID','required');
$this->form_validation->set_rules('password','Password','required');
$this->form_validation->set_rules('type','Account Type','required');
if ($this->form_validation->run() === FALSE) {
$this->load->view('register', $data);
} else {
$fullname = $this->input->post('fullname');
$username = $this->input->post('username');
$password = md5($this->input->post('password'));
$accounttype = $this->input->post('type');
$this->system->registeruser($username, $password, $fullname, $accounttype);
echo "User Registration Complete";
}
}
Модель:
public function registeruser($accountid, $password, $fullname, $accounttype) {
$query = "INSERT INTO users VALUES($fullname','$accountid','$password','$accounttype')";
$this->db->query($query);
}
Просмотр :
<?php
echo form_open('main/register');
echo validation_errors(); ?>
<div id="name-input">
<?php
$data = array(
'name' => 'fullname',
'value' => $this->input->post('fullname'),
'placeholder' => 'Full Name',
'class' => '',
'style' => 'width:100%; padding:0.5em;' );
echo form_input($data);
echo "</p>"; ?>
</div>
<div id="username-input">
<?php
$data = array(
'name' => 'accountid',
'value' => $this->input->post('accountid'),
'placeholder' => 'User ID',
'class' => 'username',
'style' => 'width:100%; padding:0.5em;' );
echo form_input($data);
echo "</p>"; ?>
</div>
<div id="password-input">
<?php
$data = array(
'name' => 'password',
'value' => $this->input->post('password'),
'placeholder' => 'Password',
'class' => 'passwordd',
'style' => 'width:100%; padding:0.5em;' );
echo form_password($data);
echo "</p>"; ?>
</div>
<div id="account-type">
<?php
$options = array(
'student' => 'Student',
'lecturer' => 'Lecturer' );
$data = array(
'name' => 'type',
'style' => 'width:100%; padding:0.5em;' );
echo form_dropdown($data, $options);
echo "</p>"; ?>
</div>
<div id="submit-button">
<?php
$data = array(
'name' => 'register',
'value' => 'Register Account',
'class' => 'register',
'style' => 'width:100%; padding:0.5em;' );
echo form_submit($data); ?>
</div>
<?php echo form_close(); ?>
Маршруты:
$route['main/register'] = 'main/register';
$route['default_controller'] = 'main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Весь приведенный выше код относится к моей странице регистрации / связанным функциям, у меня несколько эти ошибки в моей системе в настоящее время, но все они, кажется, то же самое, я решил, что решение одной может решить и остальные.