我正在使用AngularJS(前端),Slim Framework(後端),PHP和MySQL。我試圖驗證用戶電子郵件和密碼與數據庫存儲的值,但我可以用不正確的電子郵件和密碼登錄。我看不出我的問題在哪裏。請幫幫我!這裏是我的代碼如何使用Slim驗證登錄PHP
的login.html
<form novalidate name="SigninForm" id="add-new-form" method="post" action=""> <div class="form-group">
<label for="first_name">Email:</label>
<input class="form-control" type="text" ng-model="user.email" required />
</div>
<div class="form-group">
<label for="address">Password:</label>
<input class="form-control" type="text" ng-model="user.password" />
</div>
<button class="btn btn-primary" ng-disabled="SigninForm .$invalid || isUnchanged(user)" id="login" ng-click="signin(user)">Login!</button></form>
app.js
angular.module('CrudApp', []).
config(['$routeProvider', function($routeProvider)
{
$routeProvider.
when('/', {templateUrl: 'assets/tpl/home.html', controller: HomeCtrl}).
when('/login-user', {templateUrl: 'assets/tpl/login.html', controller: LoginCtrl}).
otherwise({redirectTo: '/'});
}]);
function HomeCtrl($scope, $http)
{
$http.get('api/users').success(function(data)
{
$scope.users = data;
});
}
function LoginCtrl($scope, $http, $location) {
$scope.master = {};
$scope.activePath = null;
$scope.signin = function(user, AddNewForm) {
$http.post('api/login_user', user).success(function(){
$scope.reset();
$scope.activePath = $location.path('/list-user');
//alert('No access available.');
});
$scope.reset = function() {
$scope.user = angular.copy($scope.master);
};
$scope.reset();
};
}
的index.php
<?php
require 'Slim/Slim.php';
$app = new Slim();
$app->post('/login_user', 'login');
$app->run();
function login()
{
$request = Slim::getInstance()->request();
$user = json_decode($request->getBody());
$email= $user->email;
$password= $user->password;
if(!empty($email)&&!empty($password))
{
$sql="SELECT name, email FROM user WHERE email='$email' and password='$password'";
$db = getConnection();
try {
$result=$db->query($sql);
if (!$result) { // add this check.
die('Invalid query: ' . mysql_error());
}
$row["user"]= $result->fetchAll(PDO::FETCH_OBJ);
$db=null;
echo json_encode($row);
} catch(PDOException $e)
{
error_log($e->getMessage(), 3, '/var/tmp/php.log');
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
}
function getConnection() {
$dbhost="127.0.0.1";
$dbuser="root";
$dbpass="";
$dbname="TQA";
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
?>
嘿!下面的答案對你有幫助嗎?如果是這樣,請接受它。它可以幫助其他人尋求類似問題的解決方案。 –