0
我正在研究一个需要用户登录才能访问内容的Web应用程序。我是PHP新手,所以我试图弄清楚当我试图从数据库中检索信息时,我的代码是否有问题。AngularJS PHP MYSQL用户登录
<?php
include('./connection.php');
$loginInfo = json_decode(file_get_contents('php://input'));
$username = $loginInfo->username;
$password = password_hash($loginInfo->password, PASSWORD_DEFAULT);
$q = $db->prepare("SELECT * FROM userauth WHERE username=:username AND password=:password");
$q->bindParam(':username', $username, PDO::PARAM_STR);
$q->bindParam(':password', $password, PDO::PARAM_STR);
$q->execute();
$userRow=$q->fetch(PDO::FETCH_ASSOC);
if($userRow == true){
print 'success';
}else{
print 'error';
}
?>
下面是角的服务:
'use strict';
app.factory('loginSrv', function($http,$location){
return{
login:function(loginInfo, scope){
var $promise = $http.post('../app_back_end/app_endpoints/login.php', loginInfo);
$promise.then(function(msg){
if(msg.data == 'success'){
console.log('success login');
$location.path('/profile');
}
else {
console.log('error login');
scope.msgtxt = 'Want to try again? :)';
}
});
}
}
});
'$ userRow' return'associative array' not true !!阅读http://php.net/manual/en/pdostatement.fetch.php – Saty
'password_hash()'你在SELECT上使用了错误的函数,你需要使用'password_verify()'。 –
为什么比较$ userRow为true?你可以先尝试print_r()$ userRow来查看结果吗? –