#php #html
#php #HTML
Вопрос:
У меня есть страница входа в систему, и когда я вхожу в систему, она приводит меня на мою домашнюю страницу. Если пользователь не выйдет из системы и вернется позже, ему не нужно будет входить в систему снова. Однако, если пользователь уже вошел в систему, он отобразит сообщение об ошибке, в котором говорится, что сеанс уже запущен, и, следовательно, он игнорирует следующий код.
Это мой session.php досье. Я хотел бы добавить оператор if, в котором говорится, что если сеанс уже запущен, то переведите пользователя на домашнюю страницу, а если сеанс не запущен, то переведите пользователя на страницу входа.
<?php
// mysqli_connect() function opens a new connection to the MySQL server.
$conn = mysqli_connect("localhost", "root", "", "supercar");
session_start();// Starting Session
// Storing Session
$user_check = $_SESSION['login_user'];
// SQL Query To Fetch Complete Information Of User
$query = "SELECT * from adminlogin where email = '$user_check'";
$ses_sql = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($ses_sql);
$login_session = $row['nom'];
$login_session2 = $row['id'];
$login_session3 = $row['motdepasse'];
?>
Ответ №1:
попробуйте этот код:
if(!isset( $_SESSION['login_user'])){
$_SESSION['login_user'];
} else {
header("location:index.php");
}
Ответ №2:
Ответы, приведенные выше, могут помочь, но вам также необходимо проверить наличие сеанса. если сеанс запущен, и вы переходите на веб-страницу, где session_start()
существует, вы получите сообщение об ошибке, используйте приведенный ниже код.
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
Ответ №3:
функция empty() проверит, установлена эта переменная или нет, со значением empty или нет. Поэтому вам не нужно сравнивать его значение. Если значение меняется, вам нужно сравнить значения.
if(!empty($_SESSION['login_user'])):
// Your session is already set
else:
// Your session is not set yet
endif;
Ответ №4:
Попробуйте это
$user = $_SESSION['login_user'];
if(isset($user) amp;amp; $user != ''){
$query = "SELECT * from adminlogin where email = '$user'";
$ses_sql = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($ses_sql);
$login_session = $row['nom'];
$login_session2 = $row['id'];
$login_session3 = $row['motdepasse'];
}else{
header("location:index.php");
}
Комментарии:
1. Если пустые имена пользователей не разрешены, это сработает. Но не приведет ли это к появлению уведомления, если сеанс не запущен? $user будет пустым, а strlen — пустым, не будет ли это «неисчислимой переменной»?
Ответ №5:
Попробуйте это:
if(empty($SESSION['login_user'])){
session_start(); //Start session and put session value
}else{
//Redirect here
}