ウェブサイトのログイン管理に問題があります。私は同じ問題につながるいくつかの異なるメソッドとクエリを試しました。私がusername
とpassword
をチェックするメソッドは、常にfalse
を返します。UserName - 「false」を返すパスワードチェック機能
それが簡単に理解できるようにするため、ここで私がやろうとしているものです:
- コントローラファイルの呼び出しは、ページを表示し、私が設定し
callback
機能を使用していusername
とpassword
- をユーザに促しログイン情報が正しいと場合
callback
機能はモデル法 - モデルのメソッドを呼び出す形
- のためのルールが
TRUE
を返します。そうでなければ0。ログインは決して働かないよう
は、どうやらそれは常に私はCodeIgniterのを使用してい
... FALSE
を返します。
コントローラファイル:
class Login extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library(array('form_validation', 'session'));
}
public function index()
{
$this->form_validation->set_rules('username', 'Username', 'callback_login_check[password]');
if ($this->form_validation->run() == FALSE) {
//loading view as long as it is not correct
$this->load->view('login');
} else {
//temporary successful login page
$this->load->view('success');
}
}
public function login_check($usr, $pwd)
{
$this->load->database();
$this->load->model('EZ_Query');
$result = $this->EZ_Query->get_user_details($usr, $pwd);
if ($result == TRUE) {
return TRUE;
} else {
$this->form_validation->set_message('login_check', 'Password does not match Username');
return FALSE;
}
}
}
モデルファイル:
の悪い英語のため申し訳ありません<body>
<?php
echo validation_errors();
echo form_open('Login');
echo form_label('Username', 'username');
echo form_input('username')."<br />";
echo form_label('Password', 'password');
echo form_password('password')."<br />";
echo form_submit('sumbit', 'Enter');
echo form_close();
?>
</body>
、そしてあなたのための感謝:
class EZ_Query extends CI_Model {
public function get_user_details($usr, $pwd)
{
$sql = "SELECT *
FROM PROFIL
WHERE USER = '$usr'
AND MDP = '$pwd'";
$query = $this->db->query($sql);
if ($query->num_rows() == 1) {
$row = $query->row();
//session variables
$data = array('name' => $row->NOMPROFIL,
'fname' => $row->PRENOMPROFIL,
'type' => $row->TYPEPROFIL);
$this->session->set_userdata($data);
return TRUE;
} else {
return FALSE;
}
}
}
あまり有用で、ここでのログインビューページの一部です助けて。あなたは私はあなたが良いパスワードのハッシュませMD5使用http://php.net/manual/en/function.password-hash.phpとhttp://php.net/manual/en/function.password-verify.php
を使用している願っています
をしようとするため
保存する前にユーザーのパスワードをハッシュしませんか? –
http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming – user4419336
なぜ 'callback_login_check [password]'のようなコールバックを使用しますか? – Shihas