これは私の最初の角度です。オンラインチュートリアルやガイドに多くの時間を費やして初めてセッション管理に苦しんでしまいました。 Everithingは正常に動作しますが、私がログインするときに変数$_SESSION['uid']
には私が望むものが含まれていますが、その値は$promise.then(function(response){...});
に解析されないため、正しくセッションを開始できません。 私に手がかりを与えてもらえますか?
チュートリアルは続く:Simple session with angularjs and php, angularJs
user.php
<?php
$json =file_get_contents('php://input');
$user=json_decode($json); //get user from JSON
if($user->mail=='[email protected]' && $user->pass=='1234')
session_start();
//$_SESSION['uid'] = uniqid('ang_');
$_SESSION['uid'] = $user->mail;
return $_SESSION['uid']; ?>
loginService.js
(function() {
'use strict';
var app = angular.module('loginS',['sessionS']);
app.factory('loginService',['$http','$location','sessionService',function($http,$location,sessionService){
return{
login:function(data,scope){
var $promise = $http.post('data/user.php', data);// send data to user.php
$promise.then(function(response){
console.log(response);
var uid = response.data;
if(uid!=""){
//scope.msgtext='Correct information';
sessionService.set('uid',uid);
$location.path('/home');
}
else{
scope.msgtext='Wrong information';
$location.path('/login');
}
});
},
logout:function(){
sessionService.destroy('uid');
$location.path('/login');
},
isLogged:function(){
var $checkSessionServer =$http.post('data/check_session.php');
return $checkSessionServer;
/*
if(sessionService.get('user')) return true;
else return false;
*/
}
}
}]);
})();
login.tmp.html
<div class="container">
<center>
<div class="bs-example text-left">
<form role="form" name="form1" >
<div class="form-group">
<p>Welcome : {{user.mail}} : {{user.pass}}</p>
<label for="exampleInputEmail1">Mail</label>
<input type="text" placeholder="Enrter name" class="form-control" id="exampleInputEmail1" required ng-model="user.mail"></input>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" placeholder="Password" class="form-control" id="exampleInputPassword1" required ng-model="user.pass"></input>
</div>
<button class="btn btn-default" ng-disabled="form1.$invalid" ng-click="login(user)">Submit</button>
<p>{{msgtext}}</p>
</form>
</div>
</center>
これは私が約束から得るものです....私はPHPで、なぜ....
console.log
Object {data: "", status: 200, config: Object, statusText: "OK"}
はAngularJSの "約束" の他の議論のためにこのサイトを検索する検討します、例えばhttp://stackoverflow.com/questions/14080095/angularjs-promiseまた、「AngularJS Promises:The Definitive Guide」(http://www.codeproject.com/Articles/770325/AngularJS-Promises-The-Definitive-Guide –