Reputation: 15
I am trying to access my page 'login', and I'm using Codeingiter.
I'm using TAL php too, for templates.
I just defined my routes like this:
$route['default_controller'] = "site";
$route['404_override'] = '';
$route['login'] = 'login';
$route['signup'] = 'login';
$route['success'] = 'login';
And here is my 'login' controller :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_controller{
public function __construct(){
parent::__construct();
$this->tal->setOutputMode(PHPTAL::HTML5);
if($this->session->userdata('loggedIn') == true){
$this->tal->template = 'admin';
$this->tal->login = true;
}else{
$this->tal->template = 'main';
$this->tal->login = false;
}
$this->load->model('membership_model');
}
public function index(){
$requestPage = $this->uri->segment(1);
switch($requestPage){
case 'login':
$this->tal->title = 'Connexion';
$this->tal->display('login.php');
break;
case 'signup':
$this->tal->title = 'Inscription';
$this->tal->display('signup.php');
$this->createMember();
break;
case 'success':
$this->tal->title = 'Inscription validée!';
$this->tal->display('messagePage/signupSuccess.php');
break;
}
}
function validateCredentials(){
$query = $this->membership_model->validate();
if($query){
$userdata = array(
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password')),
'loggedIn' => true
);
$this->session->set_userdata($userdata);
redirect('backoffice/profile/#');
}
$this->index();
}
function createMember(){
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Nom', 'trim|required');
$this->form_validation->set_rules('forename', 'Prénom', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('adress', 'Adresse', 'trim|required');
$this->form_validation->set_rules('zipcode', 'Code Postal', 'trim|is_natural|required');
$this->form_validation->set_rules('city', 'Ville', 'trim|required');
$this->form_validation->set_rules('country', 'Pays', 'trim|required');
$this->form_validation->set_rules('username', 'Pseudo', 'trim|required|callback_usernameCheck');
$this->form_validation->set_rules('password', 'Mot de passe', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password2', 'Confirmation du mot de passe', 'trim|required|matches[password]');
$this->form_validation->set_rules('captcha', 'Captcha');
$data = array(
'firstname' => $this->input->post('name'),
'forename' => $this->input->post('forename'),
'username' => $this->input->post('username'),
'email' => $this->input->post('email'),
'adress' => $this->input->post('adress'),
'zipcode' => $this->input->post('zipcode'),
'city' => $this->input->post('city'),
'country' => $this->input->post('country'),
'password' => $this->input->post('password'),
'passwordHashed' => md5($this->input->post('password'))
);
if($this->form_validation->run() == false){}
else{
$result = $this->membership_model->usernameCheck();
var_dump($result);
switch($result){
case false:echo 'false';
$this->form_validation->set_message('', 'Désolé mais ce nom d\'utilisateur et / ou cet email sont déjà pris');
break;
case true:echo 'true';
$this->membership_model->createMember($data);
redirect('success');
break;
}
}
}
function logout(){
$this->session->sess_destroy();
redirect('/');
}
}//this ends class
My local URL is : http://localhost/dist.
And when I try to access it, with the URL http://localhost/dist/login
, I just get '404 Page Not Found : The page you requested was not found.'
I don't understand why. All is ready.
Upvotes: 1
Views: 1975
Reputation: 1016
Try accessing the url http://localhost/dist/index.php/login
. It doesn't appear that you have removed the index.php
in the config file. Here is how to do that.
Upvotes: 1
Reputation: 4930
Have you tried debugging it?
If you don't have any routes defined, do you still get the 404 error?
I would bet that the issue is because you're routing a path to itself, but I don't know for sure.
Take out all of the routes and make sure that the path works. Then, add one at a time until it stops working.
Upvotes: 0