gavin_daCEO Ответов: 1

Как мне заставить эту штуку работать


Я установил сеанс в сценарии входа в систему, и на следующей странице Я хочу проверить, установлен ли сеанс, однако он не входит в систему. когда я пытаюсь получить доступ к странице 2 без входа в систему, это приводит меня на страницу 1, которая работает нормально, однако, когда я делаю вход, она все равно приводит меня на страницу входа. пожалуйста помочь.
мой сценарий входа в систему выглядит так. Я все еще работаю над методом crsf
<?php 
ini_set('display_errors', '0');
session_save_path('/tmp');
session_start();
$_SESSION['logged_in'];
//login page is like this

require_once 'connection.php';


if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
$username = trim($_POST['username']);

try{

  $Query = "SELECT * FROM users WHERE username = :username";
  $statement = $conn->prepare($Query);
  $statement->bindValue(':username', $username);
  $statement->execute();
  $user = $statement->fetch(PDO::FETCH_ASSOC);    
  $RowCount = $statement->rowCount();

} catch (PDOerrorInfo $e){

    die('QuerySCD Error '.$e->getMessage());

  }

  if( $RowCount == 0 ){
   // User doesn't exist
    $_SESSION['message'] = "error!";
    //header("location: error-login.php");
    $message = "Invalid login credentials";

  } else{ // User exists

      if( password_verify($_POST['password'], $user['password'])){

        $_SESSION['username']  = $user['username'];
        $_SESSION['active']    = $user['active'];
        $_SESSION['logged_in'] = $user['logged_in'];

        $_SESSION['logged_in'] = true;

        header("location: studentportal.php?onions=no&pickles=yes");

      } else {

          $_SESSION['message'] = "error!";
          //header("location: error-login.php");
          $message = "Invalid login credentials";

        }      
    }  
}

$conn = NULL;
?>
my second page look like this 
 
<?php
ini_set('display_errors', '0');
session_save_path('/tmp');

if ($_SESSION['logged_in']) {
	$_SESSION['logged_in'] = true;
	header('Location: studentportal.php');
	$message = 'welcome user';
} else {
	header('Location: index.php');
}

?>


Что я уже пробовал:

я пробовал исследования и учебные пособия

gavin_daCEO

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

Sandeep Mewara

Просто проверьте один раз для этого на следующей странице и посмотрите, если это тоже пусто: $_SESSION['username']

gavin_daCEO

его там нет,поэтому я должен добавить его, я также реализовал crsf, поэтому мне также нужно добавить его на сеанс

Sandeep Mewara

думаю, вам это тоже может понадобиться в начале страницы 2: session_start();

gavin_daCEO

спасибо что показал мне свет

Sandeep Mewara

:большой палец вверх:

1 Ответов

Рейтинг:
1

Sandeep Mewara

В настоящее время сеанс не будет передан.

полагаю, вам тоже нужно добавить session_start() на вторую страницу. Если сеанс уже существует, он будет продолжать использовать его и найдет в нем что-нибудь.

session_start(); // in top of second page


gavin_daCEO

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

Sandeep Mewara

Если кто-то заходит на вторую страницу без логина, этот сеанс поможет. Попробуйте.

gavin_daCEO

я попробую это сделать спасибо за совет Неа

gavin_daCEO

я проваливаюсь только на сеансе для имени пользователя или есть что-то еще ? я работаю над этим, но это все еще дает мне проблемы

Sandeep Mewara

https://www.tutorialrepublic.com/php-tutorial/php-mysql-login-system.php

gavin_daCEO

большое спасибо