-1
ここでは、codeigniter PHPフレームワークを使用して作成したmysql dbに格納されているユーザー名とパスワードを検索するクエリです。IDとパスワードを正しく選択できないデータベースを照会する
public function find_user($username,$password)
{
$sql = "SELECT *
FROM users_login
WHERE username = ? AND password = ?";
$query = $this->db->query($sql,array($username,md5($password)));
if($query->num_rows() == 1)
{
return TRUE;
}
else
{
return FALSE;
}
}
ここでdbは、id,username,password
です。それはうまくいかないので、何らかの間違いがありますか?
ここは私のコントローラです。多分それはここにあるエラー:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->database(); /* This function it's used to connect to database */
$this->load->model('User','user'); /* This call the model to retrieve data from db */
}
public function index()
{
if(!file_exists('application/views/login.php'))
{
show_404();
}
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('username','username','trim|required|xss_clean');
$this->form_validation->set_rules('password','password','trim|required|xss_clean|callback_check_pass');
if($this->form_validation->run() == FALSE)
{
$data['title'] = "User Access";
$this->load->view('login', $data);
}
else
{
$data['title'] = " ";
$this->load->view('/templates/index',$data);
}
}
public function pass_check($pass)
{
$username = $this->input->post('username');
$result = $this->user->find_user($username,$pass);
if($result)
{
return TRUE;
}
else
{
$this->form_validation->set_message('pass_check','Invalid username or password! Try Again, please!');
return FALSE;
}
}
}
いくつかの事があります:**(1)**何が問題なのですか? **(2)**あなたは 'md5'(これは壊れています)を使いたいですか? ['sha1'](http://php.net/manual/en/function.sha1.php)はパスワード保存のためのより良いオプションです。 – rdlowrey
何が問題なのですか? –
投稿を編集しました。 – Mazzy