session — session_destroy () не работает с PHP & gt; 7.0 на сервере

Я новичок в stackoverflow, но я не новичок в PHP.
Теперь у меня есть забавная проблема:

Я разрабатываю с XAMPP 7.1.11 с PHP 7.1.11 локально, делаю выход из сеансов с

$_SESSION = array();
session_destroy();

в файле logout.php. В верхней части страницы есть

session_start();

и в прошлом все прошло без проблем.
Теперь я сделал изменение версии php у провайдера с PHP 7.0 до 7.1, и больше невозможно выйти из системы, информация о сеансе, похоже, не удаляется.
Я искал в интернете, но не нашел полезной подсказки, и провайдер сказал мне спросить несколько форумов PHP.

Я перепробовал все подсказки в темах

почему session_destroy () не работает

Session_destroy (); некорректно работает на сервере с php 5.3.21

и многое другое, но ничего не работает. Переход с PHP 7.0 на PHP 7.2 у провайдера также не помогает.

Что я делаю не так? как я уже сказал: локально все работает нормально.

Спасибо за вашу помощь!

Вот полный файл logout.php:

<?php
session_start();
?>
<!-- Import WordPress -->
<?php
define('WP_USE_THEMES', false);
require('../wp-load.php'); ?>
<?php get_header(); ?>
<link href="cpplattform.css" type="text/css" rel="stylesheet">
<div class="spacer"></div>
<div class="container">
<div class="row">
<div class="<?php if ( is_active_sidebar( 'rightbar' ) ) : ?>col-md-8<?php else : ?>col-md-12<?php endif; ?>">
<div class="content">
<h2 class="entry-title">Logout</h2>
<!----------------------------------------------------->
<section class = "conf">
<i class='fa fa-power-off fa-5x' style ='color:#00ADED'></i>
<br>
<br>
Your logout was successful! Good Bye!
<br>
<br>
<a class="btn btn-md btn-inverse" href="cplogin.php">Login again</a></p>
<?php

$_SESSION = array();
$_SESSION['username'] = "";
session_destroy();
?>
</section>
<!----------------------------------------------------->
</div><!--content-->
</div>
</div>
</div>

<!-- Change all links from WordPress -->
<script src="cplinkmodify.js"></script>
<?php get_footer(); ?>

Я добавил несколько статических страниц и импортировал тему WordPress.

0

Решение

Примечание. Вам не нужно вызывать session_destroy () из обычного кода. Очистите массив $ _SESSION, а не уничтожайте данные сеанса.

Покажите нам свою кодовую страницу, где вы установили $_SESSION = array(); Это должно быть все, что вам нужно сделать. Проверьте, что вы установили session_start(); на этот страница:

session_start();
$_SESSION = []; //empty the array.

--End of file.

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

session_start();
$_SESSION = []; //empty array.
session_write_close();

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


У вас также может возникнуть проблема, если ваши скрипты находятся в разных папках и местный php.ini имя сеанса отличается в этих разных папках … разные имена, разные сеансы.

Центральный PHP.ini:

session.name=somethingSessiony

специфичная для локальной папки PHP.ini

session.name=somethingsessiony

Если вы чувствуете, что это может быть фактором, попробуйте что-то вроде этого:

error_log(__FILE__." : " .print_r(session_name(),true));

И в файле, который очищает данные сеанса, и в файле, который должен считывать «пустые» данные сеанса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]