Отображение имени пользователя и идентификатора пользователя из $ _SESSION

У меня возникла проблема с эхом от моего $_SESSION['user_name'] . Я заметил, что если я удалю "!" из оператора if в форме, в которой, если он зарегистрирован или нет, определяется после второго входа:

if(!isset($_SESSION['LOGIN_STATUS'])

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

Я также не могу вернуть какое-либо значение с помощью $_SESSION['user_id'] . Я пробовал много вещей, включая проверку заклинания с использованием PDO :: FETCH_NUM и проверку учетных данных моей таблицы и все еще ничего.

На данный момент проверка работает для имени пользователя и пароля, но ничего не возвращается при повторении $_SESSION['user_name'] и $_SESSION['user_id'] в текущем коде:

PHP:

 <?php session_start(); require_once('php/config.php'); if(isset($_POST['submit'])){ $username = $_POST['user_name']; $password = $_POST['pwd']; $stmt = $con->prepare("SELECT * FROM tapp_login WHERE username = ? AND password = ? LIMIT 1"); $stmt->bind_param('ss', $username, $password); $stmt->execute(); $stmt->bind_result($username, $password); $stmt->store_result(); if($stmt->num_rows == 1){ //To check if the row exists $row = $stmt->fetch(PDO::FETCH_NUM); //fetching the contents of the row $_SESSION['LOGIN_STATUS']=true; $_SESSION['user_id'] = $row['user_id']; $_SESSION['user_name'] = $username; echo 'true'; } else { echo 'false'; } $stmt->close(); } else{ } $con->close(); ?> 

ФОРМА:

 <body> <fieldset id="login_form_wrap" class="login_form_header"> <legend><a href='projects.php'>CUSTOMER LOGIN</a></legend> <?php session_start(); $_SESSION['timeout'] = time();?> <div id="profile"> <!--If not logged in--> <?php if(!isset($_SESSION['LOGIN_STATUS']) || ($_SESSION['timeout'] + 600 < time())){?> <div id="login_a"> <a id="login_profile" href="#">click to login</a> </div> <!--Else if logged in--> <?php }else {;?> <a href='logout_session.php' id='logout'>Logout</a> <!--header('location: dashboard.php');--> <?php } ?> </div> <form action="login_validation.php" id="login_form" method="POST"> <div id="login_b"> <div class="welcome"></div> <span class="col1">USER NAME:</span> <input type="text" id="user_name" name="user_name" class="input" required /> <span class="col1">PASSWORD:</span> <input type="password" id="password" name="password" class="input" required /> <span class="col1"></span> <input type="submit" name"submit" id="login_validation" value="SUBMIT" /> <input type="reset" id="cancel_hide" value="CANCEL" /> <div id="add_err"><br></div> </div> </form> <form action="project_validation.php" id="projects_form" method="POST"> <div id="projects"> <!-------------------------- Does not work -------------------------> <div class="welcome">Welcome <?php echo $_SESSION['user_name'];?><br> User ID: <?php echo $_SESSION['user_id'];?></div> <span class="col1">PROJECTS:</span> <select id="Projects" name="Projects" class="input"> <option id="project" name="project" value="" selected="selected" disabled='disabled'>Choose a Project...</option> ... </select> </div> <span class="col1"></span> <input type="submit" name="select" id="project_validation" value="SELECT" /> <div id="add_err"><br></div> </form> </fieldset> </body> 

Если ваше удивление «…» просто представляет собой больше формы, которая не нужна.

Solutions Collecting From Web of "Отображение имени пользователя и идентификатора пользователя из $ _SESSION"

Из официального документа PHP:

Чтобы использовать сеансы на основе файлов cookie, необходимо вызывать session_start () перед выводом чего-либо в браузер.

На странице формы вы вызываете session_start после отправки содержимого на вывод. Вы должны вызвать session_start перед написанием HTML.