2013-12-17 3 views
1

index.phpПеренаправление на той же странице, после выхода из

<ul class="top"> 
     <?php if(!isset($_SESSION['login_user'])) { ?> 
     <li class="hover"><a href="#" onClick="revealModal('modalPage')">Login</a> 
     </li> 
     <?php } else {?> 
     <li class="hover"><a href="logout.php">Logout</a> 
      Welcome <?php echo $_SESSION['login_user']; ?> 
     </li> 
     <?php } ?> 
     <li><a href="registration.php" class="about">Registration</a> 
     </li> 
    </ul> 

logout.php

<?php  
session_start(); 
session_destroy(); 
header('Location:index.php'); 
exit; 
?> 

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

+0

Вы можете использовать '$ _SERVER [ 'HTTP_REFERER']' т.е. заголовок ('Местоположение:'. $ _ SERVER [ 'HTTP_REFERER «]); –

+0

Я уже пробовал это 1 ... но givin me error –

+0

hey resolved :) .. спасибо –

ответ

7

Подход 1: В вашем выход из системы .php файла, вам нужно проверить, если вы есть REFERER URL из предыдущей страницы и перенаправление, если нет, то перенаправление на index.php

<?php  
session_start(); 
session_destroy(); 
if(isset($_SERVER['HTTP_REFERER'])) { 
header('Location: '.$_SERVER['HTTP_REFERER']); 
} else { 
header('Location: index.php'); 
} 
exit; 
?> 

Approach 2: Вы можете передать ссылку на страницу входа в систему, чтобы сориентировать.

Выход ссылка

<?php 
function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 
?> 

<a href="logout.php?redirect=<?php echo base64_encode(curPageURL()); ?>">Logout</a> 

logout.php файл:

<?php 
session_start(); 
session_destroy(); 
if(isset($_GET['redirect'])) { 
header('Location: '.base64_decode($_GET['redirect'])); 
} else { 
header('Location: index.php'); 
} 
?> 
+0

да я это сделал .. решил :) –

+0

Отлично! Пожалуйста, отметьте ответ. –

+0

hey cant Я помещаю обновляющее слово в заголовок этого местоположения без предоставления '. $ _ SERVER [' HTTP_REFERER ']); ?????????????? –

0

Вам не нужно $_SERVER['HTTP_REFERER'], если вы хотите перенаправить на ту же страницу или его обновить.
Это может быть просто сделать с помощью
header('Location : .');

+0

его не перенаправлять ... страница была остановлена ​​на странице logout.php –

+0

Это сработало для меня. Я создал сеанс перед использованием заголовка, и он создал его, а затем перенаправлен на ту же страницу. –

+0

нет .. его не работает ... я не хочу использовать $ _SERVER ['HTTP_REFERER'] bcz, я использовал сеанс для вызова данных с другой страницы n после выхода из системы, это показывает мне ошибку –

1

Как насчет

header('Location:'.$_SERVER['HTTP_REFERER']); 

В файле login.php:

$BackToMyPage = $_SERVER['HTTP_REFERER']; 
if(isset($BackToMyPage)) { 
    header('Location: '.$BackToMyPage); 
} else { 
    header('Location: index.php'); // default page 
} 
+0

i dint put the. оператора, поэтому изначально это давало мне ошибку.теперь dis 1 z правильно работает –

0

Попробуйте добавить параметр в вашем logout.php, чтобы вы могли динамически перенаправить пользователя на страницу, он нажал на выход из системы кнопка.

<li class="hover"><a href="logout.php?page=homepage.php">Logout</a> 
      Welcome <?php echo $_SESSION['login_user']; ?> 
     </li> 

затем в вашем logout.php

<?php  
session_start(); 
session_destroy(); 
$page = $_GET['page']; 
header('Location:' . $page); 
exit; 
?> 
+0

У меня только одна страница для выхода на другую страницу, поэтому я думаю, что она не будет работать –

0
$before = $_SERVER['HTTP_REFERER']; 
if(isset($before)) { 
    header('Location: '.$before); 
} else { 
    header('Location: index.php'); 
} 
exit; 
+0

Пожалуйста, не просто отправьте код. Дайте некоторое объяснение, информацию или использование вашего кода. Например, см. [Этот ответ] (http://stackoverflow.com/a/16893057/756941). – NAZIK

-1
if(isset($_POST['id'])) 
{ 
    header('Location:index.php'); 
} 
+0

Можете ли вы объяснить, почему это работает? – Robert

Смежные вопросы