AngularJS + php. Panel logowania.

2016-05-08 19:42

Rejestracja: 6 lat temu

Ostatnio: 3 lata temu

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?

Pozostało 580 znaków

2016-05-09 09:14

Rejestracja: 11 lat temu

Ostatnio: 1 rok temu

Lokalizacja: Norwegia, Stavanger

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?


Pozostało 580 znaków

2016-05-09 09:17

Rejestracja: 6 lat temu

Ostatnio: 3 lata temu

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 ??

Pozostało 580 znaków

2016-05-09 10:53

Rejestracja: 11 lat temu

Ostatnio: 1 rok temu

Lokalizacja: Norwegia, Stavanger

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;
      };
    };
  });

edytowany 2x, ostatnio: shagrin, 2016-05-09 12:23
Pokaż pozostałe 2 komentarze
mój błąd, poprawiłam $scope.loginUser - shagrin 2016-05-09 11:32
teraz działa, ale jeszcze jest problem z POST http://roma-crm.pl/api.php/login 405 () - ziben69 2016-05-09 11:35
dalej to samo :(, chyba coś nie tak z kodem z pliku api.php (login) - ziben69 2016-05-09 12:26
Użyłam POST zamiast GET (przyjęłam taka konwencje jeśli wysyłam dane do serwera). Jak chceszużywać GET zmień $http.post na get, plus zmień sposób przekazania danych do API. Jak chcesz użyć post zmień $app->get na $app->post - shagrin 2016-05-09 12:28
O :) w konsolce wyświetliło się "OK" cokolwiek to oznacza. Tylko teraz jeszcze jakąś autentykację dodać trzeba by, aby sprawdzało poprawność danych, dobrze rozumuję? - ziben69 2016-05-09 12:37

Pozostało 580 znaków

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