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來查看結果嗎? –