我不确定这是否是最佳做法,但我只是试图在我的网站上为我创建一个简单的登录系统。我不想使用数据库来存储一个密码,我在整个网站上使用Angular。我不希望密码在JavaScript中以纯文本形式显示给任何人看。我认为的我可以在Angular if语句中使用php变量吗?
一个解决方案在做这样的事情:
$scope.loginValue = false;
$scope.loginFunction = function(password){
if(password == <?php echo 'test123' ?>){
$scope.loginValue = true;
}
}
有谁知道我如何能够做到这一点?现在我得到一个错误,因为JavaScript不喜欢我的if语句中的'<'字符。同样,我不希望密码在JavaScript中可见,但我没有使用数据库或API调用。我也有建议。 :)
我的其他想法,使用哈希,我从来没有做过... ....是的,我愿意接受。 :)
谢谢大家提前。
******************以下更新******************
所以,我最终选择了@musicfuel建议的答案。我现在试图让这个工作。如上所示,我的login.php文件有以下几种:
<? echo $_POST['password'] == 'test123' ? true : false ?>
密码是$ scope.password来自用户输入。当他们提交他们的凭据它调用此函数
$scope.loginFunction = function(){
loginService.getLogin().then(function(response){
console.log(response);
}, function(error){
$rootScope.loggedIn = false;
});
};
这里是login服务:
myApp.controller('myController', ['$scope', '$rootScope', 'loginService', function myController($scope, $rootScope, loginService) {
.service('loginService', ['$http', '$q', '$rootScope', function($http, $q, $rootScope){
var getLogin = function() {
$http.post('login.php'), {
password: $scope.password
}, function (success) {
console.log("Login result: " + success);
}, function (error) {
console.log("Couldn't complete the login request.");
}
}
}])
}]);
当此功能运行时,我得到以下错误:类型错误:loginService.getLogin不是一个函数 你知道为什么找不到它吗?
*“我不希望密码是在JavaScript中可见,但我没有使用和数据库或API调用“*您必须进行API调用或以某种方式计算值,如果您不希望它出现在JS源代码中。即使你设法得到'<?php echo'test123'>>'工作,它只会将这个值放入发送给浏览器的JS源代码中。 –
我想你应该阅读http://stackoverflow.com/q/13840429/218196以更好地了解客户端JS和服务器端PHP如何协同工作。 –
谢谢@Felix Kling。决定做一个简单的login.php文件。谢谢您的帮助! – Jaromjj