Вопрос:

Сессия не перенаправляет

php session

30 просмотра

3 ответа

1 Репутация автора

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

if($sql->RowCount()>0){

    $entrou = $_SESSION['entrou'];
    header('location: painel.php');

И здесь у нас есть проверка, если сеанс не был создан, это происходит автоматически, потому что вход не был выполнен, и, если сеанс не существует, перенаправляет на вход в систему

    if (!isset($_SESSION['entrou']) == true ) {
  unset($_SESSION['entrou']);
  header('location: index.php');
}
Автор: Digital Ocean Источник Размещён: 11.08.2019 05:11

Ответы (3)


-1 плюса

62 Репутация автора

Вот попробуй это


<?php

session_start();

...

if($sql->RowCount()>0){

   $_SESSION['entrou'] = true;
   header('location: panel.php');
}
else {
    header('location: index.php'); // "no user in the db!"
}

...

if (!isset($_SESSION['entrou']) {
    header('location: index.php');
}

?>

Но, конечно, если вы хотите проверить, существует ли пользователь в базе данных, вы должны сделать что-то вроде этого

<?php

$data = $sql->query('SELECT * WHERE username=$_SESSION["username"]') // where "username" is the username column

if ($data == "") {
    header('location: index.php'); // user is non-existent
}
else {
    header('location: panel.php'); // the user is in the database
}
// note this only applies if you're using SQLite
Автор: Adophilus Размещён: 11.08.2019 07:42

0 плюса

1838 Репутация автора

Дайте этому шанс.

// ensure to add session_start at the beginning of 
// all scripts that require use of $_SESSION[]
session_start();

if($sql->rowCount()){
    $entrou = $_SESSION['entrou'];
    header('location: panel.php');
}

if(isset($_SESSION['entrou'])){
    unset($_SESSION['entrou']);
    header('location: index.php');
}
Автор: GROVER. Размещён: 11.08.2019 08:04

0 плюса

18 Репутация автора

Как уже упоминалось, вы должны начинать сеанс в начале каждого файла, который вы хотите использовать.

Если вы хотите установить сеанс, используйте это:

session_start();
$_SESSION[NAME] = VALUE;

и перенаправить после того, как вы проверили, установлен ли сеанс, вы можете сделать так:

session_start();
if (isset($_SESSION[NAME]){
   header(‘Location: index.php‘;
}
Автор: 4nd2in Размещён: 11.08.2019 08:44
Вопросы из категории :
32x32