这是Iam在管理员表单附近使用的脚本。
$(document).ready(function(){
$('#login_form_button').click(function(event){
event.preventDefault();
$('#fill_form').css('display','none');
$('#correct_form').css('display','none');
var username = $('#email').val();
var password = $('#pwd').val();
if(username == '' || password == ''){
$('#fill_form').css('display','block');
}else{
$.post('admin_login.php', {check:'check'}, function(data){
if(data == '1'){
window.location.href= 'admin_home.php';
}else{
$.post('admin_login.php', {username:username, password:password}, function(data){
if(data == '1'){
window.location.href= 'admin_home.php';
}else{
alert(data); $('#correct_form').css('display','block');
}
});
}
});
}
});
});
</script>
这是admin_login.php
<?php
require_once 'php/core/init.php';
if(Input::exists()){
$input_string = Input::get('check');
if($input_string === 'check'){ if(Session::exists(Config::get('session/admin_name'))){
echo '1';
exit();
}
}
$username = Input::get('username');
$password = Input::get('password');
$user = new User();
$username = User::sanitize($username);
$password = User::sanitize($password);
if($user->login_admin($username, $password)){
echo '1';
}else{
echo 'none m';
}
}
这是User.php
<?php
class User{
private $_db;
public function __construct($user = null){
$this->_db = DB::getInstance();
}
public function create($fields){
if(!$this->_db->insert('users', $fields)){
throw new Exception('Problem creating an account');
}
}
public function login($username = '', $password = ''){
$db_obj = $this->_db->query("SELECT * FROM users WHERE email = ? AND password = ?", $fields = array(
$username,
$password
));
if($db_obj->count()==1 && !$db_obj->error()){
$got_pass = $db_obj->first();
$gotpass = $got_pass["password"];
$id = $got_pass["id"];
if($gotpass === $password){
Session::put(Config::get("session/session_id"), $id); Session::put(Config::get("session/session_name"), $username);
return true;
}
else{
return false;
}
}
else{
return false;
}
}
public function login_admin($username = '', $password = ''){
$db_obj = $this->_db->query("SELECT * FROM admin WHERE username = ? AND password = ?", $fields = array(
$username,
$password
));
if($db_obj->count()==1 && !$db_obj->error()){
$got_pass = $db_obj->first();
$gotpass = $got_pass["password"];
$id = $got_pass["id"];
if($gotpass === $password){
Session::put(Config::get("session/admin_id"), $id); Session::put(Config::get("session/admin_name"), $username);
return true;
}
else{
return false;
}
}
else{
return false;
}
}
public static function sanitize($string){
return mysql_real_escape_string(strip_tags($string));
}
public static function logout(){
Session::delete(Config::get('session/admin_name'));
Session::delete(Config::get('session/admin_id'));
Session::delete(Config::get('session/session_name'));
Session::delete(Config::get('session/session_id'));
Redirect::to("index.php");
}
}
我交叉检查PDO连接当我运行test.php时它工作正常
test.php的
<?php
require_once 'php/core/init.php';
$db = DB::getInstance();
$inst = $db->get('users', array('1','=', '1'));
$results = $inst->results();
foreach($results as $result){
print_r($result);
}
?>
$ user-&gt; admin($ username,$ password)始终在admin_login.php中返回false 任何帮助都会非常明显。谢谢。