2017-12-04 2 views
0

Bin Anfänger im Codeigniter, und versuche, ein einfaches Login-Formular zu machen, indem ich einige Online-Vedios verweise. Ich habe alles gemacht . aber wenn ich versuche mich anzumelden zeigt mir 404 Seite nicht gefunden. Bitte helfen Sie mir diese404 Seite nicht gefunden - codeigniter Login

autoload.php

$autoload['libraries'] = array('database','session'); 

routes.php

$route['default_controller'] = 'welcome'; 

Controller finsh

welcome.php

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 
class Welcome extends CI_Controller { 


public function __construct(){ 

    parent::__construct(); 
     $this->load->helper('url'); 
     $this->load->model('main_model'); 
     $this->load->library('session'); 
     $this->load->library('form_validation');} 
public function index() 
{ 
      $this->load->view('welcome_message'); 
} 


function login_user(){ 
      $this->load->view('welcome_message'); 

} function login_validation(){ 

      $this->load->library('form_validation'); 
      $this->form_validation->set_rules('username','Username','required'); 
      $this->form_validation->set_rules('password','Password','required'); 

      if($this->form_validation->run()){ 
       // true 

       $username = $this->input->post('username'); 
       $password = $this->input->post('password'); 

       // model function 
       $this->load->model('main_model'); 

       if($this->main_model->can_login($username, $password)){ 
        $session_date = array(
         'username'=> $username); 

        $this->session->set_userdata($session_date); 

        redirect(base_url() . 'main/enter'); 
       }else{ 
        $this->session->set_flashdata('error','Invalid Username and Password'); 
           redirect(base_url() . 'main/login_user'); 

       } 
      } else{ 
       //false 

       $this->login_user(); 
      }}function enter(){ 
if($this->session->userdata('username') !=''){ 
echo '<h2> Welcome - '.$this->session->userdata('username').'/<h2>'; 

} else{redirect(base_url() . 'main/login_user');}}} 

Modellklasse

function can_login($username,$password){ 
$this->db->where('UserName',$username); 
$this->db->where('Password',$password); 
    $query=$this->db->get('User'); 


    if($query->num_rows() > 0){ 

    return true; 

    } else{ 
    return false; 
    }} 

Jedes Mal, wenn ich versuche, seine Vorführung 404 Seite nicht

login.php

<form method="post" action="<?php echo base_url(); ?>main/login_validation"> 
      <div class="form-group"> 
       <label>Enter Username</label> 
       <input type="text" name="username" class="form-control" /> 
       <span class="text-danger"><?php echo form_error('username'); ?></span>     
      </div> 
      <div class="form-group"> 
       <label>Enter Password</label> 
       <input type="password" name="password" class="form-control" /> 
       <span class="text-danger"><?php echo form_error('password'); ?></span> 
      </div> 
      <div class="form-group"> 
       <input type="submit" name="insert" value="Login" class="btn btn-info" /> 
       <?php 
         echo '<label class="text-danger">'.$this->session->flashdata("error").'</label>'; 
       ?> 
      </div> 
     </form> 
+0

Ich hoffe, dass Sie kein einfaches Passwort in db speichern. – user4419336

+0

Haben Sie einen Controller namens "Haupt"? Und, wie von @Solmyr vorgeschlagen, benötigen Sie keine Basis-URL für die Weiterleitung. Nur Umleitung ('Controller/Funktion') – Penguine

Antwort

0

nie, diesen Rahmen zu finden um sich einzuloggen, aber an mich gewöhnt scheint es das Problem entweder in der Umleitung ist oder der Haupt/Controller/Aktion eingeben. Um herauszufinden, var_dump() auf der base_url() vielleicht Sie falsch aufrufen, vielleicht seine statische Methode einer Klasse oder einer Konstante. Legen Sie die Sitzungsbenutzerdaten irgendwo im Code fest, als versuchen Sie, zum Haupt/enter zu gehen. Vielleicht existiert es nicht?

Edit: Scheint codeingniter Umleitung nicht benötigt base_ur verwenden nur

redirect('/main/enter'); 
0

Ihre login_validation() Methode in Ihrer Welcome Controller ist. Daher sollte formactionwelcome/login_validation und nicht main/login_validation sein.

Wenn Sie mehr wissen möchten, können Sie über URLs in Codeigniter lesen.

Verwandte Themen