angularjs CDN https://angularjs.org/ Version 1.8.2 https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js
CREATE TABLE `tbluser` (
`id` int(11) NOT NULL,
`name` varchar(150) NOT NULL,
`username` varchar(150) NOT NULL,
`password` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `tbluser` (`id`, `name`, `username`, `password`) VALUES
(1, 'Cairocoders Ednalan', 'cairocoders', '123456'),
(2, 'tutorial101', 'clded25', '123456'),
(3, 'Clydey Ednalan', 'clyde0130', '123456');
ALTER TABLE `tbluser`
ADD PRIMARY KEY (`id`);
ALTER TABLE `tbluser`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
index.php
//index.php <?php session_start(); if(isset($_SESSION['user'])){ header('location:home.php'); } ?> <!DOCTYPE html> <html ng-app="myapp" ng-controller="controller"> <head> <title>Angular JS PHP Mysql Login</title> <link href="http://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css"> <link rel="stylesheet" href="style.css"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> </head> <body> <div class="container"> <center><h2 style="color:#fff;">Angular JS PHP Mysql Login</h2></center> <div class="card card-login mx-auto text-center bg-dark"> <div class="card-header mx-auto bg-dark"> <span> <img src="myglogo.png" width="100" alt="Logo"/> </span><br/> <span class="logo_title mt-5"> Login Account </span> </div> <div class="card-body"> <form ng-submit="myFunct()"> <div class="input-group form-group"> <div class="input-group-prepend"> <span class="input-group-text"><i class="fas fa-user"></i></span> </div> <input type="text" class="form-control" placeholder="Username" name="username" id="username" ng-model="username" autofocus> </div> <div class="input-group form-group"> <div class="input-group-prepend"> <span class="input-group-text"><i class="fas fa-key"></i></span> </div> <input type="password" class="form-control" placeholder="Password" name="password" id="password" ng-model="password"> </div> <div class="form-group"> <button type="submit" class="btn btn-outline-danger float-right login_btn" ng-click="login()"><span class="glyphicon glyphicon-log-in"></span> {{btnName}}</button> </div> </form> </div> <div ng-if="message"> <div class="alert alert-success"><center>{{message}}</center></div> </div> </div> </div> <script> var app = angular.module("myapp", []); app.controller("controller", function($scope, $http) { $scope.btnName = "Login"; $scope.error = false; $scope.success = false; $scope.login = function() { if ($scope.username == null) { alert("Please input Username"); } else if ($scope.password == null) { alert("Please input Password"); } else { $scope.btnName = "Logging in..."; $scope.alert = "Checking Account. Please Wait..."; $http({ method: 'POST', url: 'login.php', data:{username:$scope.username, password:$scope.password} }).then(function (data){ console.log(data) if(data.error){ $scope.error = true; $scope.success = false; $scope.message = data.data.message; setTimeout(function() { $scope.btnName = "Login"; $scope.$apply(); }, 3000); } else{ $scope.success = true; $scope.error = false; $scope.message = data.data.message; setTimeout(function() { $scope.username = null; $scope.password = null; $scope.btnName = "Login"; $scope.$apply(); }, 3000); setTimeout(function() { window.location.reload(); }, 4000); } },function (error){ console.log(error, 'can not get data.'); }); } } }); </script> </body> </html>conn.php
//conn.php <?php $conn = new mysqli("localhost", "root", "", "testingdb"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } ?>login.php
//login.php <?php include('conn.php'); session_start(); $data = json_decode(file_get_contents("php://input")); $out = array('error' => false); $username = mysqli_real_escape_string($conn, $data->username); $password = mysqli_real_escape_string($conn, $data->password); $query=$conn->query("select * from tbluser where username='$username' and password='$password'"); if($query->num_rows > 0){ $row=$query->fetch_array(); $_SESSION['user']=$row['id']; $out['message'] = "Login Successful. Username: $username Password: $password"; } else{ $out['error'] = true; $out['message'] = "Login Failed. User not Found!"; } echo json_encode($out); ?>home.php
//home.php <?php session_start(); if(!isset($_SESSION['user'])){ header('location:index.php'); } include('conn.php'); $query=$conn->query("select * from tbluser where id='".$_SESSION['user']."'"); $row=$query->fetch_array(); ?> <!DOCTYPE html> <html> <head> <title>Angular JS PHP Mysql Login</title> <link href="http://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> </head> <body> <div class="container"> <div class="row"> <div class="col-md-6"> <h2>Angular JS PHP Mysql Login</h2> </div> </div> <hr> <div class="row"> <div class="col-md-4"> <h2><center>Welcome, <?php echo $row['username']; ?></center></h2> <center><a href="logout.php" class="btn btn-danger"> Logout</a></center> </div> </div> </div> </body> </html>logout.php
//logout.php <?php session_start(); session_destroy(); header('location:index.php'); ?>style.css
//style.css body { background: #000 !important; } .card { border: 1px solid #28a745; } .card-login { margin-top:30px; padding: 18px; max-width: 30rem; } .card-header { color: #fff; /*background: #ff0000;*/ font-family: sans-serif; font-size: 20px; font-weight: 600 !important; margin-top: 10px; border-bottom: 0; } .input-group-prepend span{ width: 50px; background-color: #ff0000; color: #fff; border:0 !important; } input:focus{ outline: 0 0 0 0 !important; box-shadow: 0 0 0 0 !important; } .login_btn{ width: 130px; } .login_btn:hover{ color: #fff; background-color: #ff0000; } .btn-outline-danger { color: #fff; font-size: 18px; background-color: #28a745; background-image: none; border-color: #28a745; } .form-control { display: block; width: 100%; height: calc(2.25rem + 2px); padding: 0.375rem 0.75rem; font-size: 1.2rem; line-height: 1.6; color: #28a745; background-color: transparent; background-clip: padding-box; border: 1px solid #28a745; border-radius: 0; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .input-group-text { display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; padding: 0.375rem 0.75rem; margin-bottom: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.6; color: #495057; text-align: center; white-space: nowrap; background-color: #e9ecef; border: 1px solid #ced4da; border-radius: 0; }