2014-10-30 115 views
0

我閱讀這篇文章:http://smallbusiness.chron.com/hiding-url-parameters-php-redirect-33163.html 這解釋瞭如何,但我不明白你如何重定向與標題,因爲他們說在那裏。如何使用php重定向隱藏URL參數

對於會話存儲,這是我的代碼使用

session_start(); 
function input_val($key, $remember = true) { //use input_val('nameofinputfield')as value to be able to store in session 
    $value=''; 
    if(isset($_REQUEST[$key])) { 
     $value = $_REQUEST[$key]; 
     //Store value in session if remember = true 
     if($remember) { 
     $_SESSION[$key] = $value; 
     } 
     return $value; 
    } else { 
     //Return session data 
     return isset($_SESSION[$key]) ? $_SESSION[$key] : $value; 
    } 
} 
+0

什麼是你的問題?你是否用'session_start();'開始了所有頁面的會話? – vaso123 2014-10-30 14:04:33

+0

是的,問題是我使用get方法來傳遞變量,所以我試圖找到一種方法來隱藏URL中的變量,所以它在那篇文章中解釋如何使用重定向 – Mark 2014-10-30 14:06:47

+0

請更具體一點。你不知道什麼。如何重定向? – vaso123 2014-10-30 14:08:44

回答

0

比方說,您想要將您的script1.php中的用戶名和電子郵件參數傳遞給script2.php。如果您使用的是POST方法,則URL中的參數將不會顯示,並且您可以通過$_POST全局變量訪問傳遞的變量。但是,如果您因任何原因想要使用GET方法,或者想要將數據存儲在$_SESSION中,則可以執行此操作。

你可以嘗試在script2.php使用此:

session_start(); 
if (count($_GET)) { 
    foreach ($_GET as $key => $value) { 
     $_SESSION[$key] = $value; 
    } 
    header("Location: " . $_SERVER["PHP_SELF"]); 
} 
//At here, you can access all of your parameters from $_SESSOION variable 
var_dump($_SESSION); 
+0

這工作完美謝謝。然而,我仍然有一個小問題,在你的解決方案之前,我以下面的方式處理複選框:在script1上我有>在腳本2上? } else { echo「」; }?>使用腳本2上的解決方案時,複選框的狀態不可見 – Mark 2014-10-30 14:45:43

+0

如果複選框沒有選中,那麼不會出現在$ _POST或$ _GET數組中。所以,你需要手動檢查它。 – vaso123 2014-10-30 14:48:52

+0

另外,爲您的複選框添加一個值,' />' – vaso123 2014-10-30 14:50:12

0

我會盡量解釋它,我可以那麼簡單,它並不難。 當用戶與php進行會話時,他在瀏覽器中存儲了一些文本,該文本就像是一個持續到用戶ID關閉瀏覽器的用戶ID。通過知道他的ID,php腳本可以告訴並從服務器提取信息,例如參數。這不是一個跨服務器功能,雖然它不是持久性的,與cookie不同,會話過期通常很短,並在用戶關閉瀏覽器時到期。

此外,建議不要使用它來存儲獲取頁碼等信息,因爲它不能被重新引用。