2017-01-18 2 views
1

Я искал конкретную тему, но не нашел ничего, что искал. Я использую код PHP для выхода из системы пользователя:Страница выхода - php

<?php 
    if(!isset($_SESSION)) 
     { 
      session_start(); 
     } 
     session_unset(); 
     unset($_SESSION["id"]); 
     unset($_SESSION["sign"]); 
     unset($_SESSION["lang"]); 
     unset($_SESSION["usertype"]); 
     session_destroy(); 
     echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=./index.php?lang=en">'; 
    ?> 

И все работает отлично, за исключением одной досадной вещь, которую я хотел бы избежать. Когда пользователь нажимает кнопку выхода из системы, можно заметить, что перед первой страницей появляется дополнительная пустая страница ... Может ли это поведение быть устранено? - Пока я ничего не хочу показывать, я хочу просто перенаправить пользователя на домашнюю страницу.

+3

Не используйте метатек, просто использовать редирект заголовка , 'header ('Location: ./index.php?lang=en');' –

ответ

0

Попробуйте заменить строку:

echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=./index.php?lang=en">'; 

С следующего вызова функции, и, конечно, предоставить свои параметры URL для выполнения только PHP перенаправления inestead из triying, чтобы обновить страницу.

Redirect("index.php"); 

function Redirect($url, $statusCode = 303) 
{ 
    header('Location: ' . $url, true, $statusCode); 
    die(); 
} 
0

вместо unset() все переменный просто использовать session_unset() & session_destroy() для отключения и уничтожить все переменные сессии затем использовать заголовок для перенаправления на главную страницу

session_unset(); 
session_destroy(); 
header('Location: http://yourwebsite.com'); 
Смежные вопросы