Почему каждый раз, когда я обновляю sh страницу, в базу данных помещается новая сессия? - PullRequest
0 голосов
/ 29 апреля 2020

мой код выполняет публикацию сеанса в базе данных, и каждый раз, когда я ссылаюсь на sh, эта страница снова и снова публикует один и тот же сеанс. Я не понимаю, почему? Решение, вероятно, простое, но я попробовал все. Надеюсь получить помощь.

<?php
session_start();


require '../../required/connection.php';
require '../../required/functions.php';

if (!isset($_SESSION['alive']))
{
    $id = $_GET['trxid'];
    $_SESSION['alive'] = uniqid();
    $currentSession = $_SESSION['alive'];
    $checkQuery = "SELECT token FROM request_data WHERE token='$currentSession'";
    $checkResult = mysqli_query($con, $checkQuery);
    $row = mysqli_num_rows($checkResult);
    if($row < 1)
    {
        $firstQuery = "INSERT INTO request_data (token, link) VALUES ('$currentSession', '$id')";
        $firstResult = mysqli_query($con, $firstQuery);
    }

}

1 Ответ

0 голосов
/ 29 апреля 2020

Я думаю, что-то пошло не так в вашем connection.php или functions.php. Также возможно, что у вас есть ошибки сервера, которые приводят к такому поведению? Кроме того, возможно, вы изменили конфигурации сеансов в php .ini (например, время жизни)?

Следующий пример основан на вашем коде и работает на страница phpfiddle.org

<?php
session_start();

// just for testing - you can comment it in and out
//$_SESSION['alive'] = null;

if (!isset($_SESSION['alive'])) {
    echo 'FALSE; <br/>';
    $_SESSION['alive'] = uniqid();
    echo 'AFTER = "'. $_SESSION['alive'] . '"'; 
} else {
    echo 'TRUE = "'. $_SESSION['alive'] . '"'; 
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...