AngularJS + php. Panel logowania.

0

Witam,
próbuję stworzyć panel logowania (bez rejestracji), ale nie potrafię sobie poradzić. Ktoś mógłby pomóc??

Napisałem tak:
api.php:

public function getLogin()
    {
           $sql = "SELECT login FROM users WHERE login='$username' AND password='$password'";
            
            return $this->db->fetchAll();
    }

$app->get('/login', function () use ($app, $DataProvider) {

    $login = $DataProvider->getLogin();

    return $app->json($login);
});

login.html:

<div class="row">
    <div class="col-lg-10 col-sm-10 col-xs-12">
        <div class="flat-panel">
            <div class="flat-panel-header">
                <h3 class="flat-panel-heading">Panel logowania</h3>
            </div>
            <div class="flat-panel-body">
                <div class="form-group">
                <input type="text" class="form-control" ng-model="loginInfo.username" placeholder="Podaj login">
                </div>
                <div class="form-group">
                <input type="password" class="form-control" ng-model="loginInfo.password" placeholder="Podaj hasło">
                </div>
                <div class="form-group">
                <button ng-click="loginUser()" class="btn btn-primary">Zaloguj</button>
                </div>
            </div>
        </div>
    </div>
</div>

services.js:

     app.factory('login', ['$http', function($http){
       var _getLogin = function (callback) {
            callback = callback||function(){};
            $http.get('/api.php/login')
                .success(function (data) {
                    callback(data);
                });
        };
        return {
            getLogin: _getLogin
        };

i app.js:

    app.controller("LoginController", function($scope, $http){
        $scope.loginInfo = {
            username: undefined,
            password: undefined
        }
            $scope.loginUser = function(){
                var data = {
                    username: $scope.loginInfo.username,
                    password: $scope.loginInfo.password
                }               
                };    
        })

Jakby ktoś mógł pomóc, byłbym bardzo wdzięczny. Bardzo zamieszałem?

0

Po kliknięciu przycisku w formularzu wołasz $scope.loginUser() z LoginController, ale w tej metodzie nie odwołujesz się do service'u (login.getLogin()). Poza tym nie bardzo rozumiem jak login.getLogin() ma przesłać login i hasło dalej do PHP?

0

jestem bardzo początkujący z angulara, dodatkowo sobie dołożyłem Silex'a, nie bardzo potrafię coś tu wskórać. Można porozmawiać z Tb prywatnie ??

1

Spróbuj czegoś takiego:

angular.module("LoginTest", [])
  .controller("LoginCtr", function($scope, LoginFtr) {
    $scope.loginInfo = {
      username: undefined,
      password: undefined
    };

    $scope.loginUser = function(){
		LoginFtr.getLogin($scope.loginInfo).then(function(response) {
      			console.log("OK");
    	});
	}
  })
  .factory("LoginFtr", function($q, $http) {
    return {
      getLogin: function(data) {
        var deferred = $q.defer();
        $http.post('/api.php/login', data)
          .success(function(response) {
            deferred.resolve(response);
          });
        return deferred.promise;
      };
    };
  });

1 użytkowników online, w tym zalogowanych: 0, gości: 1