Hi All,
Request your help, on the below code as the below code is going in circles
Environment:
Slim 3.12.1
PHP 7.2
HTML page:
<html lang="en">
<head>
<! -- Basic CSS and JS Scripts -->
<link rel="stylesheet" href="/static/css/bootstrap/bootstrap.min.css">
<script type="text/javascript" src="/static/js/jquery/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="/static/js/jquery/popper.min.js"></script>
<script type="text/javascript" src="/static/js/bootstrap/bootstrap.min.js"></script>
<! -- ############################################### -->
<script type="text/javascript">
$(document).ready(function(){
$('#Ulogin').submit(function(e){
e.preventDefault();
$.ajax({
url: '/admin/login',
type: 'post',
data:$('#Ulogin').serialize(),
datatype: 'json',
success: function(data){ $('#PStatus').html(data); }
});
});
});
</script>
<! -- ############################################### -->
</head>
<div class="container-fluid">
<div class="form-group">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 mt-5 px-10" align="center">
<form class="form-control-sm px-15 w-100 mx-auto" style="max-width: 330px" id="Ulogin">
<h1 class="h3 mb-3 font-weight-bold text-white">Please sign in</h1>
<label for="inputUsername" class="sr-only">Username</label>
<input type="username" id="username" name="Username" class="form-control" placeholder="-sysop-bpntid" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" id="password" name="Password" class="form-control mt-1" placeholder="password" required>
<button class="btn btn-lg btn-primary btn-block mt-3" type="submit">Sign in</button>
</form>
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 mt-5 px-10" align="center"><p id="PStatus"></p></div>
</body>
</html>
PHP Code:
<?php
session_start();
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
################################################################
# Class Files
################################################################
require '../includes/vendor/autoload.php';
require_once('../config/credentials.php');
require_once('../config/parameters.php');
$conf = ['settings' => [
'addContentLengthHeader' => false,
'displayErrorDetails' => true,
'determineRouteBeforeAppMiddleware' => true,
]];
$app = new \Slim\App($conf);
$container = $app->getContainer();
$container['view'] = function ($container) {
$view = new \Slim\Views\Twig('../admintpl');
$router = $container->get('router');
$uri = \Slim\Http\Uri::createFromEnvironment(new \Slim\Http\Environment($_SERVER));
$view->addExtension(new \Slim\Views\TwigExtension($router, $uri));
return $view;
};
################################################################
# Start Page
################################################################
$loggedInMiddleware = function ($request, $response, $next) {
$route = $request->getAttribute('route');
if (empty($route)) { throw new \Slim\Exception\NotFoundException($request, $response); }
$routeName = $route->getName();
$groups = $route->getGroups();
$methods = $route->getMethods();
$arguments = $route->getArguments();
$publicRoutesArray = array('login');
if (!isset($_SESSION['USER']) && !in_array($routeName, $publicRoutesArray)) { return $response->withRedirect('/admin/login'); }
return $next($request, $response);
};
$app->add($loggedInMiddleware);
$app->get('/', function($request, $response) use($app) {
$homeController = new HomeController($request, $response, $args);
return $homeController->index();
#return $this->view->render($response, 'page_login.html');
})->setName('home');
$app->get('/login', function($request, $response) use($app) {
return $this->view->render($response, 'page_login.html');
})->setName('login');
$app->post('/login', function ($request, $response, $args) {
if(!$_POST['username'] || !$_POST['password']) {
$res = "Login Required";
return $res;
}
$user = $request->getParam('Username');
$pass = $request->getParam('Password');
return $user;
$_SESSION['user']['username'] = $user['username'];
});
$app->run();
?>