Потенциальные причины сброса php-сессии после вызова функции заголовка? - PullRequest
0 голосов
/ 14 апреля 2019

Я устанавливаю 2 переменные сеанса и затем вызываю функцию заголовка.

(SecurityCheck.php)

$_SESSION['danger'] = "true";
$_SESSION['priviledgeError'] = "You do not have access";
header('Location: index.php');

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

(index.php)

echo 'line 63 index.php';
echo "<br>danger session is: " . isset($_SESSION['danger']);
echo "<br>priviledge session is: " . isset($_SESSION['priviledgeError']);

line 63 index.php
danger session is: 
priviledge session is: 1 

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

Я ожидаю, что обе сессии вернут "1", а не только одну из них.

Весь файл Index.php:

<?php 
session_start();
?>
<!DOCTYPE html>
<html>
<head>
    <title>Sign-Up/Login Form</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="css/style2.css">

    <style>

        #userPass
        {
            padding; 20px;
        }

        #logIn
        {
            padding: 20px;
            position:relative;
            border-style: solid;
            margin:auto;
            background-color: white;
            width: 390px;
            height: 160px;
        }

        #log-in-header
        {
            position: absolute;
            left:46%;
            font-size: 35px;
            color:black;
        }

        #submitButton
        {
            position: relative; 
            top: 83px;
            width: 347px;
        }

        td
        {
            padding: 20px;
        }
    </style>

</head>

<!--ONLY runs when user has clicked LOG-IN-->

<body>




<div id='container'>
    <?php
            echo 'line 63 index.php';
            echo "<br>danger session is: " . isset($_SESSION['danger']);
            echo "<br>priviledge session is: " . 
isset($_SESSION['priviledgeError']);
            // die;
        require 'header.php';
        require 'messages.php';
    ?>

    <br>
    <p id='log-in-header'>
        Log-In
    </p>
    <hr><br><br><br>

        <form method="post" action="login.php">
            <div id='logIn'>
<!--                    <div id='userPass'>-->
                        <table style = "position: relative; bottom: 
40px;">

                            <tr>
                                <td style='font-size: 20px'>Username:</td>
                                <td><input type="text" style='color: 
black' name="userName" id='user' ></td>
                            </tr>

                            <tr>
                                <td style='font-size: 20px'>Password:</td>
                                <td><input type="password" style='color: 
black' name="password" id='pass' ></td>
                            </tr?

                        </table>
<!--                   </div>-->

                   <div id='submitButton'>
                        <input type="submit" class="btn btn-default" 
style='color: black; font-size: 20px' value="Log In">           
                   </div>     
            </div>
        </form>
</div>
<!-- LOG-IN form ENDS -->


    <!--  JS scrips-->

    <script src="js/index.js"></script>-->

</body>
</html>`

ОБНОВЛЕНИЕ: добавлена ​​новая запись сеанса, а также удаление сеанса в SecurityCheck.php

$_SESSION['danger'] = "true";
$_SESSION['priviledgeError'] = "You do not have access 
unset($_SESSION['priviledgeError']);
$_SESSION['newSession'] = "hi";
header('Location: index.php');

Вот код в index.php:

echo 'line 63 index.php';
echo "<br>danger session is: " . isset($_SESSION['danger']);
echo "<br>priviledge session is: " . 
isset($_SESSION['priviledgeError']);
echo "<br>new session is: " . $_SESSION['newSession'];

Вот результат:

line 63 index.php
danger session is: 
priviledge session is: 
new session is: hi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...