これがベストプラクティスであるかどうかはわかりませんが、自分のウェブサイトで私のために単純なログインシステムを作成しようとしています。私は1つのパスワードを格納するためにデータベースを使用したくないし、サイト全体でAngularを使用している。誰もが見るためにパスワードがプレーンテキストになることを望んでいません。私はこれを実現することができるかもしれないどのように誰もが知っていAngular if文でphp変数を使用できますか?
$scope.loginValue = false;
$scope.loginFunction = function(password){
if(password == <?php echo 'test123' ?>){
$scope.loginValue = true;
}
}
:私は考え
一つの解決策は、このような何かをやっていましたか? JavaScriptは私のif文で '<'が好きではないので、今私はエラーが発生します。再び、私はパスワードがjavascriptに表示されることを望んでいませんが、私はデータベースやAPI呼び出しを使用していません。私も同様の提案をしています。 :)
私が持っていた他の考えは、私が以前にしたことのないハッシュを使用していました....ええ、私はアイデアを開いています。 :)
ありがとうございます。
********************** ********************** BELOW UPDATE
だから、@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;
});
};
この関数を呼び出して、ここにloginServiceです:
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.");
}
}
}])
}]);
この機能を実行すると、私は次のエラーを取得する:TypeError例外を:loginService.getLogin機能 ではありませんそれが見つからない理由を知っていますか?
:角側で
を、あなたは変数を送信し、応答を処理するために$ HTTPサービスを活用しますjavascriptで表示されますが、データベースやAPI呼び出しを使用していません。* JSソースに表示したくない場合は、API呼び出しを行うか、値を計算する必要があります。 '<?php echo 'test123'?>'を実行することができたとしても、単にその値をブラウザに送られたJSソースに入れます。 –
クライアントサイドJSとサーバサイドPHPがどのように連携しているかを理解するには、http://stackoverflow.com/q/13840429/218196を読んでください。 –
ありがとう@Felix Kling。シンプルなlogin.phpファイルを作ることを決めました。助けてくれてありがとう! – Jaromjj