Есть файл login.php, куда пользователь заходит по умолчанию, заполняет форму, нажимает submit, форма перенаправляется на эту же страницу и если есть $_POST['login'], то выполняется код, который приведу ниже.
Как должно быть: пользователь заходит на страницу с логином, вводит свои данные, данные сравниваются с БД и перенаправляются на другую страницу в зависимости от его роли.
Как есть: перенаправляет на страницу в зависимости от роли, но данные в сессию не записываются.
На странице, откуда переходит, в начале файла session_start(); и в файле, куда переходит, тоже session_start();
Обращался в саппорт, они ничем помочь не могут, говорят, что проблема в коде.
Код:
login.php
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- }
- require_once 'config.php';
- require_once 'vendor/autoload.php';
- if($_SESSION['usr_role'] == 1 || $_SESSION['usr_role'] == 2) {
- echo "<script>window.location.assign('admin_hr/index.php')</script>";
- } elseif($_SESSION['usr_role'] == 3) {
- echo "<script>window.location.assign('user/index.php')</script>";
- }
- }
- $username = $_POST['username'];
- $passwordNotMd5 = $_POST['password'];
- $login = $_POST['login'];
- $_SESSION['remember_me'] = "1";
- }
- $sql = "SELECT * FROM `user` WHERE usr_email = :usr_email AND usr_password = :usr_password";
- $stmt = $pdo->prepare($sql);
- 'usr_email' => $username,
- 'usr_password' => $password
- ));
- $res = $stmt->fetchAll(PDO::FETCH_ASSOC)[0];
- $first_name = $res['usr_first_name'];
- $last_name = $res['usr_last_name'];
- $user = $res['usr_email'];
- $pass = $res['usr_password'];
- $role = $res['usr_role'];
- $avatar = $res['usr_photo_url'];
- $user_id = $res['usr_id'];
- $user_is_active = $res['usr_is_active'];
- if ($user == $username && $pass = $password) {
- if ($role == "1" || $role == "2") {
- $_SESSION['usr_email'] = $user;
- $_SESSION['usr_first_name'] = $first_name;
- $_SESSION['usr_last_name'] = $last_name;
- $_SESSION['usr_role'] = $role;
- $_SESSION['usr_photo_url'] = $avatar;
- $_SESSION['usr_id'] = $user_id;
- echo "<script>window.location.assign('admin_hr/index.php')</script>";
- } elseif ($role == "3" && $user_is_active == "1") {
- $_SESSION['usr_email'] = $user;
- $_SESSION['usr_first_name'] = $first_name;
- $_SESSION['usr_last_name'] = $last_name;
- $_SESSION['usr_role'] = $role;
- $_SESSION['usr_photo_url'] = $avatar;
- $_SESSION['usr_id'] = $user_id;
- echo "<script>window.location.assign('user/index.php')</script>";
- } elseif ($role == "3" && $user_is_active == "0") {
- echo "<script>window.location.assign('/login.php?userInactive=true')</script>";
- }
- } else {
- echo "<script>window.location.assign('/login.php?loginIncorrect=true')</script>";
- }
- }
- ?>
- <div class="alert alert-danger alert-dismissible" role="alert" style="position:absolute;">
- <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">Ч</span><span
- class="sr-only">Close</span></button>
- <strong>Error!</strong> This email is not found.
- </div>
- <?
- }
- ?>
- <div class="alert alert-success alert-dismissible" style="position: absolute;" role="alert">
- <button type="button" class="close" data-dismiss="alert"><span aria-hidden="false">Ч</span><span
- class="sr-only">Close</span></button>
- <strong>Done!</strong> New password has been sent on your email
- </div>
- <?
- }
- ?>
- <div class="alert alert-danger alert-dismissible" role="alert" style="position:absolute;">
- <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">Ч</span><span
- class="sr-only">Close</span></button>
- <strong>Warning!</strong> This username or password are incorrect.
- </div>
- <?
- }
- ?>
- <div class="alert alert-danger alert-dismissible" role="alert" style="position:absolute;">
- <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">Ч</span><span
- class="sr-only">Close</span></button>
- <strong>Warning!</strong> Your account is inactive.
- </div>
- <?
- }
- ?>
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Learning management system</title>
- <!-- Bootstrap -->
- <link href="css/bootstrap.min.css" rel="stylesheet">
- <link href="css/signin.css" rel="stylesheet">
- <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
- <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
- <!--[if lt IE 9]>
- <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
- <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
- <![endif]-->
- </head>
- <body>
- <div class="my-container">
- <form class="form-signin" role="form" method="post" action="">
- <h2 class="form-signin-heading">Please sign in</h2>
- <input type="email" class="form-control margin" id="username" name="username" placeholder="Email address"
- required autofocus>
- <input type="password" class="form-control margin" id="password" name="password" placeholder="Password"
- required>
- <label class="checkbox margin">
- <input type="checkbox" name="rememberMe" value="Yes"> Remember me
- </label>
- <button class="btn btn-lg btn-primary btn-block" name="login" type="submit">Sign in</button>
- <button type="button" class="btn btn-lg btn-block" data-toggle="modal" data-target="#myModal">Reset password
- </button>
- </form>
- <div id="myModal" class="modal fade" role="dialog">
- <div class="modal-dialog">
- <!-- Modal content-->
- <div class="modal-content row">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal">×</button>
- <h4 class="modal-title">Reset password</h4>
- </div>
- <form role="form" action="send_mail.php" method="post">
- <div class="modal-body">
- <p>After pressing "Reset" button the new generated password will be sent to your email</p>
- <input type="email" name="email" class="form-control margin" placeholder="Email address"
- required autofocus>
- <!--<button type="submit" class="btn btn-primary pull-right" data-dismiss="modal">Отправить</button>-->
- <button type="submit" class="btn btn-primary pull-right">Reset</button>
- </div>
- </form>
- </div>
- </div>
- </div>
- <footer class="footer">
- <p class="text-muted text-center">© All rights reserved</p>
- </footer>
- </div> <!-- /container -->
- <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
- <!-- Include all compiled plugins (below), or include individual files as needed -->
- <script src="js/bootstrap.js"></script>
- </body>
- </html>