2013-07-22 227 views
0

我有我在PHP中的表單重新提交的小問題,當表單填寫在我的網站上,並提交時,他們被重定向回來。表單重新提交在PHP中,如何重定向到特定頁面

<?php 
if (isset($_POST['submit'])){ 
     //process form input and validate data here 
     if (strlen(isset($_POST['name'])) > 0){ 
      //return status to user here 
      //and redirect page here. 
?> 
     <script type='text/javascript'> 
      history.go(-2); 
     </script> 
<?php 
     } 
    } 
?> 

這是我遇到問題,我正在使用JavaScript重定向到上一頁。我需要瀏覽器重定向到上一頁,但如果它是login.php,那麼它應該在login.php之前重定向到上一頁,我如何在php中執行此操作,以獲取上一頁並將瀏覽器重定向到上一頁,但如果上一頁是login.php,那麼它應該重定向到之前的頁面。

+0

成功重定向你爲什麼不設置一個'地點:'頭呢? – Brad

+0

你應該看看這個'$ _SERVER ['HTTP_REFERER']'http://php.net/manual/en/reserved.variables.server.php –

+0

布拉德,我不能使用位置,因爲我已經發送了一些輸出在提交表單之前使用echo,這不會使頭部('Location')工作,或者有另一種方法來使用我沒有得到的Location方法? –

回答

0

這不是一個確切的解決方案,但重定向人使用下列內容:

header('Location: http://www.google.com/'); 

使用上面的代碼之前顯示在頁面的任何其他信息就必須展示。

將用戶重定向到他們從使用附帶的以下頁面:

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

使用$_SERVER['HTTP_REFERER']時作爲URL由用戶代理設置,並不總是有要小心。

如果您確實需要重定向到它們在重定向到登錄頁面之前所處的頁面,則需要將該信息存儲到$ _SESSION []變量中,或者將其設置爲url中的GET變量。

例子:

  1. 用戶進入http://www.example.com/settings.php
  2. 用戶沒有登錄重定向到login.php?redirect=http://www.example.com/settings.php或重定向設置$_SESSION['redirect'] = "http://www.example.com/settings.php";
  3. 手柄登錄
    • 登錄失敗重定向他們login.php?redirect=http://www.example.com/settings.php或之前login.php(如果你使用SESSION變量)。
    • 登錄與header('Location: '+$_GET['redirect']);header('Location: '+$_SESSION['redirect']);

More Information on Sessions

More Information on $_SERVER variables

More Information on header()

+0

我是否必須將其存儲在會話變量中?我無法得到它並重定向它們嗎? –

+0

@samsonade,我發佈了2個選項。 1是會話變量,另一個是將其作爲GET變量發佈到網址中。除此之外,我不知道一個可行的解決方案。甚至不認爲有另一種解決方案是完全不同的。 – Steven10172

相關問題