2017-02-18 16 views
0

管理/ビュー/ login.phpは、それが見つからない

<?php $this->load->library('form_validation'); ?> <?php echo validation_errors(); ?> <?php echo form_open('cpages/ceklogin'); ?> <div class="login-card"> <center><?php //echo $warning; ?> <?php echo $this->session->flashdata('warning'); ?> </center> <h2>Gionda CMS Login</h2><br> <form> <div class="login"><input type="text" name="username" placeholder="Username"></div> <div class="login"><input type="password" name="password" placeholder="Password"></div> <br> <input type="submit" name="login" class="login login-submit" value="login"> </form> <div class="login-help"> <a href="#">Register</a> • <a href="#">Forgot Password</a> </div> </div> 

コントローラ/ Cpages.php

public function ceklogin() { 
     $username = $this->input->post('username', TRUE); 
     $password = $this->input->post('password', TRUE); 
     $this->db->where('username', $username); 
     $this->db->where('password', $password); 
     $query=$this->db->get('login'); 
     if ($query->num_rows() >= 1) 
      { 
       // echo 'LOGIN BERHASIL !'; 
       $this->load->model('Mpages'); 
       $data['login']=$this->db->get('login'); 
       $data['login']=$this->Mpages->login(); 
       $this->load->view('index', $data); 
      } 
     else 
      { 
       // echo 'LOGIN GAGAL !'; 
       $this->session->set_flashdata('warning', 'Your username and password are wrong !'); 
       //$data['warning']='Your username and password are wrong !'; 
       $this->load->view('login'); 
      }   
    } 

モデル/ Mpages.php

public function login() 
    { 
     $query = $this->db->get('login'); 
     return $query->result(); 
    } 

ユーザー名、電子メールオブジェクトを示してログインできませんパスワードの役割

ユーザーの使用[email protected] 12345管理者 user2の[email protected] $ 2yと私はユーザー名でログインしようとしています$ 10 $ PrDTzzETQ.NzI9eIN0WYDubhBZhkg9XEo10MxRYpv4Mマネージャ

:ユーザーのパスワード:12345、まだログインして成功していません。なぜだろう?

http://localhost/masterlinkci2/cpages/ceklogin

オブジェクトは見つかりませんでした!

このサーバーでは、要求されたURLが見つかりませんでした。参照ページのリンクが間違っているか古いようです。エラーについてはそのページの作者に知らせてください。

これがサーバーエラーと思われる場合は、ウェブマスターにお問い合わせください。

私はどのルートにそれをするだろう:

$route['default_controller'] = 'cpages/login'; 
    $route['cpages/login'] = 'cpages/login'; 
+0

あなたはどんな答えがものを持っている受け入れることを忘れないでくださいみました働いた。 – user4419336

+0

答えは私が消化するのが難しいです。またはhttps://www.daniweb.com/programming/web-development/threads/507558/cannot-loginにアカウントがある場合は、見やすくなります。私は同じ質問を掲示しています。 – David

+0

私はまだ同じビューを使用できますか? – David

答えて

0

routes.phpの

method.Youは、このようなあなたのcontroller.Tryでテーブルのデータを取得することができモデルを呼び出すする必要はありません。..

public function ceklogin() { 
     $username = $this->input->post('username'); 
     $password = $this->input->post('password'); 
     $this->db->where('username', $username); 
     $this->db->where('password', $password); 
     $query=$this->db->get('login'); 
     if ($query->num_rows() >= 1) 
      { 
       // echo 'LOGIN BERHASIL !'; 
       $data['login']=$query->result(); //returns data in object format 
       $this->load->view('index', $data); 
      } 
     else 
      { 
       // echo 'LOGIN GAGAL !'; 
       $this->session->set_flashdata('warning', 'Your username and password are wrong !'); 
       //$data['warning']='Your username and password are wrong !'; 
       $this->load->view('login'); 
      }   
    } 
あなたのビューで

は、データがforeach loop.Likeを使用します。この..

ここでは210
+0

私はビューの部分を取得しません。私はまだ同じエラーが表示されます:http:// localhost/masterlinkci2/cpages/ceklogin - オブジェクトが見つかりません! – David

+0

あなたの 'index'ビューを投稿してください。 –

0

は、モデル

に地雷をやっ方法の例である私は、あなたの使用してPHPのハッシュ

が一度ハッシュhttp://php.net/manual/en/function.password-hash.php

を作成したと思うその後、あなたはhttp://php.net/manual/en/function.password-verify.php

public function validate_password($username, $password) { 
    // Get the stored password from DB 
    $stored_password = $this->get_this_users_password($username); 

    if (password_verify($password, $stored_password)) { 
     return TRUE; 
    } else { 
     return FALSE; 
    } 
} 

それを確認する必要がありますI私の自己は私のモデルをオートロードしますが、あなたは持っていなくてもいいです

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

$autoload['model'] = array('user/user_model'); 

モデル

ファイル名:User_model.php最初の文字はすべて大文字です。あなたは、コントローラのないビューにライブラリやヘルパーなどをロード

<?php 

class User_model extends CI_Model { 

    public $table_name = 'user'; 

    private $user_id; 
    private $username; 
    private $firstname; 
    private $lastname; 
    private $email; 

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

     if ($this->session->userdata('user_id')) { 

      $this->db->select('user_id, username, firstname, lastname, email, date_joined'); 
      $this->db->from($this->db->dbprefix . $this->table_name); 
      $this->db->where('user_id', $this->session->userdata('user_id')); 
      $this->db->where('status', '1'); 
      $user_query = $this->db->get(); 

      if ($user_query->num_rows() == 1) { 

       $this->user_id = $user_query->row()->user_id; 
       $this->username = $user_query->row()->username; 
       $this->firstname = $user_query->row()->firstname; 
       $this->lastname = $user_query->row()->lastname; 
       $this->email = $user_query->row()->email; 
      } 

     } else { 
      $this->logout(); 
     } 
    } 

    public function logout() { 
     unset($_SESSION['user_id']); 

     $this->user_id = ''; 
     $this->username = ''; 
     $this->firstname = ''; 
     $this->lastname = ''; 
     $this->email = ''; 
    } 

    public function login($username, $password) { 
     if ($this->validate_password($username, $password)) { 
      $this->db->select('user_id, username, firstname, lastname, email, date_joined'); 
      $this->db->from($this->db->dbprefix . $this->table_name); 
      $user_query = $this->db->get(); 

      if ($user_query->num_rows() == 1) { 

       $this->session->set_userdata('user_id', $user_query->row()->user_id); 

       $this->user_id = $user_query->row()->user_id; 
       $this->username = $user_query->row()->username; 
       $this->firstname = $user_query->row()->firstname; 
       $this->lastname = $user_query->row()->lastname; 
       $this->email = $user_query->row()->email; 

       return TRUE; 
      } else { 
       return FALSE; 
      } 

     } 
    } 

    public function validate_password($username, $password) { 
     $stored_password = $this->get_this_users_password($username); 

     if (password_verify($password, $stored_password)) { 
      return TRUE; 
     } else { 
      return FALSE; 
     } 
    } 

    public function get_this_users_password($username) { 
     $this->db->where('username', $username); 
     $query = $this->db->get($this->db->dbprefix . $this->table_name); 

     return $query->row()->password; 
    } 

    public function get_this_users_id() { 
     return $this->user_id; 
    } 

    public function get_this_users_username() { 
     return $this->username; 
    } 

    public function get_this_users_firstname() { 
     return $this->firstname; 
    } 

    public function get_this_users_lastname() { 
     return $this->lastname; 
    } 

    public function get_this_users_email() { 
     return $this->email; 
    } 
} 

コントローラ機能の例

public function __construct() { 
    parent::__construct(); 
    $this->load->model('user/user_model'); 
    $this->load->library('form_validation'); 
} 

public function login() { 
    $this->form_validation->set_rules('username', 'username', 'trim|required'); 
    $this->form_validation->set_rules('password', 'password', 'trim|required'); 

    if ($this->form_validation->run() == FALSE) { 

     // login view 

    } else { 

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

     if ($login == true) { 
      redirect('some-controller'); 
     } else { 
      set a error or reload login view. 
     } 
    } 
} 
関連する問題