Получить информацию о строке таблицы пользователя после входа в систему - PullRequest
0 голосов
/ 24 мая 2018

Как запросить всю информацию о пользователе после входа в систему?Я хочу сделать боковую панель, где пользователь, вошедший в систему, может видеть свою информацию, которая хранится в базе данных.

Будет удобен простой код, поэтому я могу отображать информацию везде, как в HTML:

//WORKS//<?php echo htmlspecialchars($_SESSION['username']); ?>
//NOT WORKING//<?php echo htmlspecialchars($_SESSION['firstname']); ?>
//NOT WORKING//<?php echo htmlspecialchars($_SESSION['lastname']); ?>
//NOT WORKING//<?php echo htmlspecialchars($_SESSION['email']); ?>

БАЗА ДАННЫХ: ПОЛЬЗОВАТЕЛИ> ИД - ИМЯ ПОЛЬЗОВАТЕЛЯ - ИМЯ ФИЛЬМА - ИМЯ ПОЛЬЗОВАТЕЛЯ - EMAIL.

Это будет страница с подробностями.Не обращайте внимания на HTML.

мой php код

<?php
// Initialize session
session_start();
include("config.php");

// If session variable is not set, redirect to login page
if (!isset($_SESSION['username']) || empty($_SESSION['username'])) {
    header("location: login.php");
    exit;
}
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Homepagina</title>
        <link rel="stylesheet" href="/style.css">
    </head>
    <body>
        <div class="page-header">
            <h1>Hi, <b><?php echo htmlspecialchars($_SESSION['username']); ?></b>. Welcome to our site.</h1>
        </div>
        <p><a href="logout.php" class="btn btn-danger">Uitloggen!</a></p>
    </body>
</html>


// THIS IS THE LOGIN.PHP
            if(mysqli_stmt_num_rows($stmt) == 1){                    
                // Bind result variables
                mysqli_stmt_bind_result($stmt, $username, $hashed_password);
                if(mysqli_stmt_fetch($stmt)){
                    if(password_verify($password, $hashed_password)){
                        /* Password is correct, so start a new session and
                        save the username to the session */
                        session_start();
                        $_SESSION['username'] = $username;
                        $_SESSION['firstname'] = $firstname;      
                        header("location: homepagina.php");
                    }

1 Ответ

0 голосов
/ 24 мая 2018

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

Что вы хотитеdo - это query база данных с оператором SELECT, запрашивающим 'Everying' *.Затем вы извлекаете информацию в формате массива, mysqli_fetch_array().Затем вы создаете переменные PHP, содержащие различные значения базы данных.Либо по сеансу или что-то еще.Способ, который работает, как с любым массивом.Вы спрашиваете, какой индекс вы хотите получить.

Пример того, как извлечь данные из базы данных:

<?php
//$conn is your database connection variable from config.php
//If your connection variable is named something else, change it accordingly

$sessionUser=mysqli_real_escape_string($conn, $_SESSION['id']);

$sql="SELECT * FROM users WHERE id='$sessionUser'";
$result_set=mysqli_query($conn, $sql);
$row=mysqli_fetch_array($conn, $result_set);

//row variables from your table (given that the rows you gave are correct)
$id=$row['id'];
$username=$row['username'];
$fistname=$row['firstname'];
$lastname=$row['lastname'];
$email=$row['email'];

//row variables as session variables
$_SESSION['id'] = $row['id'];
$_SESSION['username'] = $row['username'];
$_SESSION['firstname'] = $row['firstname'];
$_SESSION['lastname'] = $row['lastname'];
$_SESSION['email'] = $row['email'];
?>

Надеюсь, это довольно просто.

ОБРАТИТЕ ВНИМАНИЕ , что я использую id в вашем сеансе вместо username для извлечения данных из базы данных, так что вы будетенеобходимо установить это как переменную сеанса вместо username при входе в систему.Причина этого в том, что я не совсем уверен, является ли имя пользователя уникальным идентификатором или нет.Если это так, вы можете изменить его обратно, чтобы он соответствовал вашей логике.

Теперь мне трудно дать 100% точную версию для копирования и вставки, поскольку я чувствую, что ваш код неполон, и при этоммой или ваш интерес действительно.Лучше всего было бы, чтобы вы поняли , что я делаю, и смогли реализовать это самостоятельно, и знали, что вы делаете, вместо того, чтобы копировать и вставлять объекты без подсказки.

Если вам нужно что-то проработанное, вы можете спросить, но я не собираюсь кодировать вашу заявку для вас.Однако я также чувствую, что это очень простой вопрос, который Google мог бы легко решить для вас.Только мои 2 цента.

Вы также уже однажды установили username в качестве переменной сеанса, что означает, что вы уже извлекли информацию о пользователе один раз, чтобы сделать это.Почему вы не можете использовать тот же подход?Или просто установить остальные переменные строки в сеанс в том же месте?Вот почему я чувствовал, что ваш код неполон, и почему вы не можете на 100% понять, что происходит, или что вы делаете.Если вы не предоставите эту информацию, вам будет сложно помочь вам на 100% и заставить вас понять , то есть фрагмент кода / файла, в котором вы задали переменную сеанса username .

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