AngularJS存储PHP用户名

时间:2016-07-20 13:51:07

标签: php angularjs wordpress

我目前正在开发一个AngularJS问卷表单,该表单从WordPress安装中获取用户用户名。

我已成功设法接收用户的用户名,但在更改视图时,刷新浏览器会丢失用户名!如果我不刷新浏览器,则在所有视图中都可以看到用户名。

如何防止丢失用户名?

JS

appCtrl.controller('oneCtrl', ['$scope', '$localStorage', '$http', function($scope, $localStorage, $http) {
  $localStorage.$reset();
  $scope.$storage = $localStorage;
  $http({
    method: 'POST',
    url: 'https://app.com/user.php',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  }).success(function(data, status, headers, config) {
    username = data;
  }).error(function(data, status, headers, config) {
    alert(data);
  });
}]);

appCtrl.controller('twoCtrl', ['$scope', '$localStorage', function($scope, $localStorage) {
  $scope.username = username;
}]);

appCtrl.controller('threeCtrl', ['$scope', '$localStorage', function($scope, $localStorage) {
  $scope.username = username;
}]);

PHP

<?php
  require_once('/home/app/public_html/wp-load.php' );
  global $current_user;
  get_currentuserinfo();
  if ( is_user_logged_in() ) {
    $username = $current_user->user_login;
    echo $username;
  }
?>

解决方案

<?php
  $username = $current_user->user_login;
  if($username) {
  echo "<script>var username = '".$username."';</script>";
  }
?>

2 个答案:

答案 0 :(得分:0)

  1. 无需重置localStorage - 只在必要时覆盖该值。
  2. 不要将价值保存为全局变量 - 不良做法和泄露数据。而是将它存储在服务中(或者最坏的情况 - 在$ rootScope上,尽管这也是一种不好的做法)
  3. 如果您想在刷新后继续使用,请将用户名保存在本地存储中,但它会将数据泄露给其他用户。
  4. 我的建议是,在角度服务中保存用户名(为了便于使用)+在服务器上保存会话,这样您就可以在刷新后查询(并在服务中存储,如果有现有会话)。

答案 1 :(得分:0)

在每个页面<script>var username='<?php echo "tralala";?>';</stript>上传递用户名(可以是模板),然后username将在您的网站上以全球方式提供