2017-08-30 1 views
0

Lorsque je envoie mon URL http://localhost:8080/myScholarship/register sur le serveur, j'obtiens une erreur 404. Mon nom de contrôleur est Register et le nom de fichier est enregistré avec Register.php. et j'appelle la fonction index().appel à l'un de mon contrôleur codeigniter renvoie erreur 404 mon code est correct

Ceci est mon contrôleur:

<?php 
class Register extends CI_Controller { 

    public function __construct() 
    { 
      parent::__construct(); 
      $this->load->helper(array('form', 'url')); 
    } 

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

    /****************************************create*************************************/ 
    public function create() 
    { 
     $this->load->helper('form'); 
     $this->load->library('form_validation'); 

     //$data['title'] = 'Create a news item'; 

     $this->form_validation->set_rules('surname', 'Surname', 'required'); 
     $this->form_validation->set_rules('firstname', 'Firstname', 'required'); 
     //$this->form_validation->set_rules('othername', 'Othername', 'required'); 
     $this->form_validation->set_rules('email', 'Email', 'required'); 
     $this->form_validation->set_rules('phonenumber', 'Phonenumber', 'required'); 
     $this->form_validation->set_rules('gender', 'Gender', 'required'); 
     $this->form_validation->set_rules('password', 'Password', 'required'); 
     $this->form_validation->set_rules('confirmpassword', 'confirmpassword', 'required'); 

     if ($this->form_validation->run() === FALSE) 
     { 
      //$this->load->view('templates/header', $data); 
      $this->load->view('index'); 
      //$this->load->view('templates/footer'); 

     } 
     elseif($this->input->post('password') != $this->input->post('confirmpassword')){ 
      $data1 = "the password does not match"; 
      $this->load->view('index',$data); 
     } 
     else 
     { 
      $file_data = ''; 
      if((isset($_FILES['recentphoto']['name']) && !empty($_FILES['recentphoto']['name']))){ 
       $file_data = './uploads/'.$_FILES['recentphoto']['name']; 
      }else{ 
       $file_data = './uploads/images.jpg'; 
      } 
      $file = do_upload(); 
      if(isset($file['error'])){ 
       $data1 = $file['error']; 
       $this->load->view('index',$data1); 
      }else{ 
      $this->news_model->set_applicant($file['upload_data']); 
      $succ = "please login with your account details"; 
      $this->load->view('index',$succ); 
      } 
     } 
    } 
    /*************************************end create***************************************/ 
    public function do_upload() 
    { 
      $config['upload_path']   = './uploads/'; 
      $config['allowed_types']  = 'gif|jpg|png|jpeg'; 
      $config['max_size']    = 100000; 
      $config['max_width']   = 1024; 
      $config['max_height']   = 768; 

      $this->load->library('upload', $config); 

      if (! $this->upload->do_upload('recentphoto')) 
      { 
        return $error = array('error' => $this->upload->display_errors()); 

        //$this->load->view('upload/upload', $error); 
      } 
      else 
      { 
        return $data = array('upload_data' => $this->upload->data()); 

        //$this->load->view('upload/upload_success', $data); 
      } 
    } 
} 
?> 

Ceci est mon routes.php:

<?php 
$route['register'] = 'register'; 
$route['news/create'] = 'news/create'; 
$route['news/(:any)'] = 'news/view/$1'; 
$route['news'] = 'news'; 
$route['(:any)'] = 'pages/view/$1'; 
$route['default_controller'] = 'pages/view'; 
?> 
+1

Faites un peu de débogage pour essayer de savoir à quel moment il échoue. Par exemple, insérez 'die ('asd')' dans le constructeur et voyez si vous voyez la sortie. Si vous le faites, essayez la même chose dans la méthode 'index()'. Si vous ne le voyez jamais, il y a un problème plus profond. J'ai déjà eu des problèmes avec les conventions de dénomination de fichier CI, mais d'après ce que vous dites, le fichier et la classe sont nommés correctement. – Utkanos

+0

J'ai essayé de mettre une fonction die() dans le constructeur et toujours pas de changement, je suis totalement confus cela m'a vraiment pris longtemps pour résoudre –

Répondre

0

Si vous travaillez dans un serveur Linux/Unix, vous pouvez rappeler que les noms de fichiers ar sensibles à la casse, essayez avec l'URL http://localhost:8080/myScholarship/Register ou changer le nom du contrôleur à register.php sans lettre supérieure R

EDIT

changer la vôtre itinéraires à:

<?php 
$route['register'] = 'register/index'; 
$route['register/(:any)'] = 'register/$1'; 
$route['news/create'] = 'news/create'; 
$route['news/(:any)'] = 'news/view/$1'; 
$route['news'] = 'news'; 
$route['pages/view/(:any)'] = 'pages/view/$1'; 
$route['default_controller'] = 'pages/view'; 

essai.

+0

J'ai juste essayé tout ce que vous avez dit et je ne reçois toujours aucune différence, j'ai vraiment besoin de réparer ce –

+0

Je modifie ma réponse, s'il vous plaît vérifier et essayer – kip

0

Dans Route.php fichier son nécessaire pour définir le nom de fonction (index) également, s'il vous plaît utiliser ce routage.

$route['register'] = 'register/index'; 

au lieu de

$route['register'] = 'register'; 

Si encore son ne peut pas travaillé alors ce sera les questions de htaccess, essayez url aussi comme ça.

http://localhost:8080/myScholarship/index.php/register 

Si l'adresse ci-dessus fonctionne correctement, cela signifie qu'il y a un problème d'accès.