PHP логин и сессия получают данные из базы данных - PullRequest
0 голосов
/ 29 августа 2018

Это мой код в логине. После входа я хочу использовать ID в качестве первичного ключа, чтобы пропустить другую страницу. Я пытаюсь много кода, но все еще не работает. пожалуйста, помогите мне

if(isset($_POST['login']))
    {
        $email=$_POST['email'];
        $password=md5($_POST['password']);
        $sql ="SELECT * FROM tbluser WHERE EmailAddress=:email and uPassword=:password";
        $query= $dbh -> prepare($sql);
        $query-> bindParam(':email', $email, PDO::PARAM_STR);
        $query-> bindParam(':password', $password, PDO::PARAM_STR);
        $query-> execute();
        $results=$query->fetchAll(PDO::FETCH_OBJ);
        if($query->rowCount() > 0)
        {
            $_SESSION['login']=$_POST['email'];
            $_SESSION['fname']=$results->FullName;
            $_SESSION['uid']=$results['UserID'];
            $currentpage=$_SERVER['REQUEST_URI'];
            echo "<script type='text/javascript'> document.location = '$currentpage'; </script>";
        } else{

            echo "<script>alert('Invalid Details');</script>";

        }

    }

И как вызвать идентификатор пользователя на другой странице.

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Так вы используете сессию, помещаете ее в начало или в каждый php-файл, где вам это нужно

 <?php

        session_start();

        include("./Models/db_connect.php");
        include('./Controllers/Functions/PHP/messages.php');
        include('./Models/actual_date.php');
        $actual_date = get_date($db);

        switch(isset($_POST['login'])):  
            case 'Register':
            $email = htmlspecialchars(trim($_POST['em']), ENT_QUOTES, 'UTF-8');
            $password = htmlspecialchars(trim($_POST['pw']), ENT_QUOTES, 'UTF-8');

            // check if the combination fname/lname/email is already used
            include('./Models/log_check.php');
            unset($_SESSION['ID'],$_SESSION['role']);
            $_SESSION['ID'] = $row['ID'];
            $_SESSION['role'] = $row['role'];

            if(intval($row['ID']) > 0){
                include('./Models/status_update.php');
                $successmsg = "Connexion réussie! Redirection en cours";
                header('refresh:5;url=./index.php?page=Lobby');
                if($_SESSION['role'] === 'vet') {
                    include './Views/html_top_vets.php'; 
                } else {
                    include './Views/html_top_clients.php'; 
                }

                include('./Views/lobby.php');
            } else {
                $errormsg = "   
                <p>Vous n'avez pas de compte ou la combinaison est incorrecte!</p>";
                include('./Views/html_top_login.php');
                include('./Views/login.php');
            }
            break;
            default:
            include('./Views/html_top_login.php');
                include('./Views/login.php');
        endswitch;
    ?>
0 голосов
/ 29 августа 2018

вам нужно session_start()

if($query->rowCount() > 0)
            {
                session_start();
                $_SESSION['login']=$_POST['email'];
                $_SESSION['fname']=$results->FullName;
                $_SESSION['uid']=$results['UserID'];
                $currentpage=$_SERVER['REQUEST_URI'];
                echo "<script type='text/javascript'> document.location = '$currentpage'; </script>";
            }

и затем вы запускаете сеанс с помощью session_start () на другой странице, и он будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...