AngularJS和PHP登录 [英] AngularJS and PHP login

查看:168
本文介绍了AngularJS和PHP登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个使用angularjs,PHP一个简单的应用程序和MySQL ..

我有一个使用angularjs,PDO和mysql一个登录页面。

但我不知道如果我这样做是正确或其他方式。

什么情况下可以仍然使用 $ _ SESSION 来验证用户登录。或者我应该使用angularjs认证?我还是新angularjs,所以我不知道是否有类似code到 $ _ SESSION 在angularjs做。

我只需要你的意见家伙。

先谢谢了。

这是我的code。

HTML登录

 包括LIB / connection.php
如果(使用isset($ _ SESSION ['LOGGED_IN'])){
    如果($ _ SESSION ['LOGGED_IN'] =='1'){
        头('位置:的index.php');
    }
}
?>
<!DOCTYPE HTML>
< HTML NG-应用=对myApp>
< HEAD>
    <标题>实施AngularJS< /标题>    <! - 最新编译和精缩CSS - >
    <链接rel =stylesheet属性HREF =htt​​ps://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css>    <! - 可选主题 - >
    <链接rel =stylesheet属性HREF =htt​​ps://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css>
    <链接rel =stylesheet属性HREF =CSS / custom.css>
< /头><身体GT;
< D​​IV CLASS =容器NG-控制器=AppCtrl>
    < D​​IV CLASS =登录COL-MD-4 COL-MD-偏移4>
        < H2>请登录上述< / H2>
        <形式为GT;
        <输入类型=文本名称=用户名级=表格控占位=用户名NG模型=users.username/>
        <输入类型=密码NAME =密码级=表格控占位=密码NG模型=USERS.PASSWORD/>
        <输入类型=提交名称=cmd_btn级=BTN BTN-主要BTN-块NG点击=登录()/>
        < /表及GT;
        < BR />
        < D​​IV CLASS =警戒警报的危险NG-IF =消息>
            < P>无效的用户名或密码<!/ P>
        < / DIV>
    < / DIV>< / DIV>    &所述; SCRIPT SRC =htt​​ps://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js>&下; /脚本>
    &所述; SCRIPT SRC =controller.js>&下; /脚本>
< /身体GT;< / HTML>

ANGULARJS code

  VAR对myApp = angular.module('对myApp',[]);myApp.controller('AppCtrl',['$窗口','$范围,$ HTTP',函数($窗口,$范围,$ HTTP){
$ scope.login =功能(){
    的console.log($ scope.users);
    VAR输入='的myData ='+ JSON.stringify($ scope.users);
    $ HTTP({
        方法:POST,
        网址:'LIB / login_c.php',
        数据:输入,
        标题:{内容类型:应用程序/ x-WWW的形式urlen codeD;字符集= UTF-8'}
    })。成功(功能(RES){
        的console.log(RES);
        如果(RES == 1){
             $ window.location.href =的index.php;
        }其他{
            $ scope.message = TRUE;
        }
    });
};}]);

PHP code

 < PHP包括connection.php如果(使用isset($ _ POST ['myData的'])){$ login_obj = json_de code($ _ POST ['myData的']);
如果(空($ login_obj->!用户名)和空($ login_obj->密码)){    $ instantiate_login_c =新login_c;    $条件=用户名=:用户名和密码=:密码;
    $ ARR =阵列('用户名'= GT; $ login_obj->用户名,口令''=> $ login_obj->密码);    $结果= $ instantiate_login_c-> getWhere('用户',$条件,$ ARR);    如果($结果){
        $ _SESSION ['LOGGED_IN'] ='1';
        回音1;
    }其他{
        呼应0;}
}其他{
    呼应0;
}}


解决方案

是的,它是好的,你可以做到左右逢源,做起来角的方式肯定是去的最佳途径。

I am trying to create a simple application using angularjs, php and mysql..

I do have a login page which uses angularjs, PDO and mysql.

however I'm not sure if I'm doing it right or the other way around..

is it okay to still use $_SESSION to verify user login. or should I use angularjs authentication? I'm still new to angularjs so I don't know if there's a similar code to $_SESSION in angularjs.

I just need your advice guys.

thanks in advance.

here's my code.

HTML Login

include "lib/connection.php";
if(isset($_SESSION['logged_in'])){
    if($_SESSION['logged_in'] == '1'){  
        header('location:index.php');
    }
}
?>
<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <title>Implementing AngularJS</title>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
    <link rel="stylesheet" href="css/custom.css">
</head>

<body>
<div class="container" ng-controller="AppCtrl">
    <div class="login col-md-4 col-md-offset-4">
        <h2>Please Log in</h2>
        <form>
        <input type="text" name="username" class="form-control" placeholder="Username" ng-model="users.username"  />
        <input type="password" name="password" class="form-control" placeholder="Password" ng-model="users.password"  />
        <input type="submit" name="cmd_btn" class="btn btn-primary btn-block" ng-click="login()" />
        </form>
        <br />
        <div class="alert alert-danger" ng-if="message">
            <p>Invalid Username or Password!</p>
        </div>
    </div>

</div>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
    <script src="controller.js"></script>
</body> 

</html>

ANGULARJS CODE

var myApp = angular.module('myApp', []);

myApp.controller('AppCtrl', ['$window','$scope', '$http', function($window, $scope, $http) {


$scope.login = function(){
    console.log($scope.users);
    var inputs = 'myData=' + JSON.stringify($scope.users);
    $http({
        method:'POST',
        url:'lib/login_c.php',
        data: inputs,
        headers:{'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'}
    }).success(function(res){
        console.log(res);
        if(res == 1){
             $window.location.href = "index.php";
        }else{
            $scope.message = true;
        }
    });
};

}]);

PHP CODE

<?php

include "connection.php";

if(isset($_POST['myData'])){

$login_obj = json_decode($_POST['myData']);
if(!empty($login_obj->username) AND !empty($login_obj->password)){

    $instantiate_login_c = new login_c;

    $condition = "username = :username AND password = :password";
    $arr = array('username' => $login_obj->username, 'password' => $login_obj->password);

    $result = $instantiate_login_c->getWhere('users', $condition, $arr);

    if($result){
        $_SESSION['logged_in'] = '1';
        echo 1;
    }else{ 
        echo 0;}


}else{
    echo 0;
}

}

解决方案

yes it is okay, you can do it both ways, but doing it the angular way is certainly the best route to go.

这篇关于AngularJS和PHP登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆