2012-04-23 113 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 2012-04-23 08:29:17

+0

HTTP_REFERER可能無法在所有情況下正常工作,但恰好當您嘗試執行此操作時它是否就像用戶試圖訪問需要驗證的頁面,並且在對用戶進行身份驗證之後,您會將其重定向到他/她嘗試訪問的上一頁訪問? – Peeyush 2012-04-23 08:29:42

+0

我不是說使用HTTP_REFERER是一個壞主意 – Peeyush 2012-04-23 08:30:25

回答

1

怎麼樣?

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

您可以使用PHP直接將客戶端重定向到另一個頁面,而無需使用HTTP的元刷新...

+0

HTTP_REFERER可能無法在所有情況下工作 – itachi 2012-04-23 08:50:59

+0

我之前也使用過該代碼。 我的網址是 somesite.com/index.php?option=com_user&view=login&return=Zm9ydW0ucGhw 但是,當代碼重定向,我重定向到 somesite.com/index.php?option=com_user 這不是預期的結果。 – 2012-04-23 09:24:57

+0

@AchrafSoltani看到這個 – 2012-04-23 16:51:24

0

爲了不依靠引薦,你可以存儲你的頁面帖子的網址從隱藏的輸入中獲取表單,然後在處理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

請編碼。謝謝 – 2012-04-23 16:50:59

0

我用這樣的:

1 - 在前面的頁面中,我得到完整的url並添加類似參數,即最後一個參數。

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

2 - 在實際的頁面,你必須得到E值爲

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

3 - 所以,使用var $Ë將是你的背部網址

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

你可以請代碼嗎?謝謝 。 – 2012-04-23 09:45:24

+0

看到這個評論。 – 2012-04-23 16:51:48