3

Я использую Codeigniter. Все нормально, пока я не создаю новый контроллер с именем user_authentication.php (находится на http://localhost/etalasekursusci/index.php/user_authentication). Когда я пытаюсь открыть этот контроллер, браузер сказал: «404 Страница не найдена. Запрошенная вами страница не найдена». Мои файлы с контроллером на http://localhost/etalasekursusci/index.php/controller и http://localhost/etalasekursusci/index.php/user работают нормально, только этот, который терпит неудачу.Codeigniter - 404 Страница не найдена

(FYI, я копирую файл user_authentication.php от моего друга. И если я скопировать скрипт внутри класса пользователя в user_authentication класс, то user_authentication.php можно получить ...)

/приложение/файл .htaccess:

<IfModule authz_core_module> 
    Require all denied 
</IfModule> 
<IfModule !authz_core_module> 
    Deny from all 
</IfModule> 

/application/config/config.php файл:

$config['base_url'] = 'http://localhost/etalasekursusci/'; 

/а РИМЕНЕНИЕ/конфигурация/routes.php файл:

$route['default_controller'] = 'controller'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

/application/controllers/user.php файл (доступен):

<?php 
class user extends CI_Controller { 
public function __construct() 
{ 
    parent::__construct(); 

    $this->load->model('user_model'); 
} 

public function index() 
{ 
    $this->load->library('form_validation'); 

    $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 

    $this->form_validation->set_rules('nama', 'Nama Kursus', 'required|min_length[5]|max_length[20]'); 

    $this->form_validation->set_rules('alamat', 'Alamat Kursus', 'required|min_length[5]|max_length[40]'); 

    if ($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('register_user'); 
    } 
    else 
    { 
     $data = array(
     'lembaga' => $this->input->post('nama'), 
     'alamat' => $this->input->post('alamat'), 
     'paketkursus' => $this->input->post('paket'), 
     'lokasi' => $this->input->post('lokasi'), 
     'harga' => $this->input->post('biaya') 
     ); 

     $this->user_model->insert_userinfo($data); 

     $this->load->view('tambahberhasil'); 

    } 
} 
} 

Файл /application/controllers/user_authentication.php (к которым невозможен доступ):

<?php 
class user_authentication extends CI_Controller { 

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


$this->load->helper('form'); 


$this->load->library('form_validation'); 


$this->load->library('session'); 


$this->load->model('login_database'); 

} 


public function user_login_show() { 
$this->load->view('login_form'); 
} 

public function user_registration_show() { 
$this->load->view('registration_form'); 
} 

public function new_user_registration() { 

$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 

$this->form_validation->set_rules('name', 'Name', 'required|min_length[5]|max_length[20]'); 

$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[40]'); 

$this->form_validation->set_rules('email_value', 'Email', 'required|min_length[2]|max_length[50]'); 

$this->form_validation->set_rules('password', 'Password', 'required|min_length[6]|max_length[10]'); 

if ($this->form_validation->run() == FALSE) { 
$this->load->view('registration_form'); 
} else { 
$data = array(
'name' => $this->input->post('name'), 
'user_name' => $this->input->post('username'), 
'user_email' => $this->input->post('email_value'), 
'user_password' => $this->input->post('password') 
); 
$result = $this->login_database->registration_insert($data) ; 
if ($result == TRUE) { 
$data['message_display'] = 'Registrasi Berhasil !'; 
$this->load->view('login_form', $data); 
} else { 
$data['message_display'] = 'Username yang ada inputkan sudah ada!'; 
$this->load->view('registration_form', $data); 
} 
} 
} 


public function user_login_process() { 

$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 

$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[20]'); 

$this->form_validation->set_rules('password', 'Password', 'required|min_length[5]|max_length[40]'); 

if ($this->form_validation->run() == FALSE) { 
$this->load->view('login_form'); 
} else { 
$data = array(
'username' => $this->input->post('username'), 
'password' => $this->input->post('password') 
); 
$result = $this->login_database->login($data); 
if($result == TRUE){ 
$sess_array = array(
'username' => $this->input->post('username') 
); 

$this->session->set_userdata('logged_in', $sess_array); 
$result = $this->login_database->read_user_information($sess_array); 
if($result != false){ 
$data = array(
'name' =>$result[0]->name, 
'username' =>$result[0]->user_name, 
'email' =>$result[0]->user_email, 
'password' =>$result[0]->user_password 
); 
$this->load->view('admin_page', $data); 
} 
}else{ 
$data = array(
'error_message' => 'Nama atau Password yang anda masukan salah !' 
); 
$this->load->view('login_form', $data); 
} 
} 
} 


public function logout() { 

$sess_array = array(
'username' => '' 
); 
$this->session->unset_userdata('logged_in', $sess_array); 
$data['message_display'] = 'Anda sudah Log Out !'; 
$this->load->view('login_form', $data); 
} 

} 

Любые идеи?

(FYI, я копирую файл user_authentication.php от моего друга. И если я скопировать скрипт внутри класса пользователя в user_authentication класс, то user_authentication.php можно получить ...)

+1

Похоже, вам нужно настроить свою роу utes, проверьте документацию CI (http://www.codeigniter.com/userguide2/general/routing.html) –

+1

разместите файл '.htaccess', который находится в главной папке' etalasekursusci' и какую версию codeigniter вы используете? – Kamran

+0

Какую версию Codeigniter вы используете? –

ответ

3

С вами определили базовый URL, как

$config['base_url'] = 'http://localhost/etalasekursusci/'; 

Пожалуйста, попробуйте URL http://localhost/etalasekursusci/user_authentication без index.php

ИЛИ Определение base_url в конфигурации, как показано ниже с index.php

$ config ['base_url'] = 'http://localhost/etalasekursusci/index.php';

Пожалуйста, напишите код контроллера, если сможете.

+0

все еще не может ... я отредактировал мое сообщение выше .. –

+2

Базовый URL не должен содержать index.php в конце в соответствии с документацией здесь: https : //ellislab.com/codeigniter/user-guide/helpers/url_helper.html его цель - предоставить вам возможность создавать ссылки на статические ресурсы, такие как изображения или таблицы стилей. –

3

В Codeigniter 3 ваши имена классов должны начинаться с буквы верхнего регистра, как и их имя файла.

Вы должны попробовать переименовать user_authentication.php в User_authentication.php и изменить вступительную строки:

<?php 
class User_authentication extends CI_Controller { 

Аналогично, user.php должен быть изменен на User.php и его первые строки в:

<?php 
class User extends CI_Controller { 

Документация класса Объясняя это, можно найти here

Смежные вопросы