2012-04-23 8 views
-1

Я хочу перенаправить пользователей на страницу, из которой они пришли, но не использует javascript go.back и тому подобное, потому что он не загружает страницу еще раз.Перенаправить пользователя на предыдущую страницу

Я нашел некоторый код

<?php 
$ref1 = urlencode($_SERVER['HTTP_REFERER']); 
$ref2 = urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); 
echo '<meta http-equiv="refresh" content="5;url=page2.php?ref1='.$ref1.'&amp;ref2='.$ref2.'">'; 
?> 

Я просто хочу PHP-файл, чтобы взять предыдущий URL, точный адрес, а затем отправить пользователю вернуться к нему. Я использую PHP, потому что он заставляет страницу загружаться снова. Я использовал javascript, но он не загружает страницу снова, поэтому, пожалуйста, помогите мне здесь. Спасибо заранее.

+0

, что было неправильным о 'JavaScript : window.location.reload (history.go (-1)); '? – Aprillion

+0

HTTP_REFERER может не работать во всех случаях, но точно, когда вы пытаетесь это сделать? Это похоже на то, что пользователь пытается получить доступ к странице, для которой требуется аутентификация, и после аутентификации пользователя вы перенаправите ее на предыдущую страницу, которую он пытается доступ? – Peeyush

+0

Я не говорю, что использование HTTP_REFERER - плохая идея – Peeyush

ответ

1

а как?

<?php 
header ("Location: ".$_SERVER['HTTP_REFERER']); 
?> 

Вы можете использовать PHP непосредственно перенаправить клиента на другую страницу без использования протокола HTTP метатег ...

+0

HTTP_REFERER может не работать во всех случаях – itachi

+0

Я тоже использовал этот код. Мой URL является somesite.com/index.php?option=com_user&view=login&return=Zm9ydW0ucGhw Но когда код перенаправляет, я перенаправлены на somesite.com/index.php?option=com_user Это не желаемый результат . –

+0

@AchrafSoltani см. Это –

0

Чтобы не полагаться на реферера, вы можете хранить URL страницы, которые вы добавите форму из скрытого ввода, а затем получить его из $ _POST в скрипте, который обрабатывает запрос POST и выдает перенаправление на этот URL-адрес.

Очень простой пример:

В шаблоне:

<form action="<?= $yourDestinationUrl ?>" method="POST"> 
<!-- Here be your form elements --> 
<input type="hidden" name="redirectTo" value="<?= $_SERVER['REQUEST_URI'] ?>" /> 
</form> 

В сценарии обработки запроса POST:

[your logic goes here] 

if(!empty($_POST['redirectTo']) { 
    header('Location: ' . $_POST['redirectTo']); 
    die; 
} 
+0

пожалуйста код это. спасибо –

0

я так:

1 - На предыдущей странице я получаю полный url и добавляю как параметр, последний параметр.

$e = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; 
href="www.nextpage.com?x=yours_parameters&e=<?php echo $e; ?>" 

2 - На фактической странице, вы должны получить электронного значение

$_SESSION["url"] = $_SERVER['REQUEST_URI']; 
$link = explode("e=",$_SESSION["url"]); 
$e = $link[1]; 

3 -SO, то переменные $ е будет вашей спина URL

<script>location.href='$e';</script>"; 
+0

Не могли бы вы запрограммировать это? Благодарю . –

+0

см. Этот комментарий. –

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