如何使用php重定向隐藏URL参数


How to Hide URL parameters with php redirect

我读过这篇文章:http://smallbusiness.chron.com/hiding-url-parameters-php-redirect-33163.html这解释了如何重定向,但我不明白你是如何用标题重定向的。

对于存储在会话中,这是我使用的代码

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;
    }
}

比方说,您想将用户名和电子邮件参数从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);

我会尽可能简单地解释它,并没有那么难。当用户与php进行会话时,他会在浏览器中存储一小段文本,这些文本就像一个用户ID,一直持续到他关闭浏览器。php脚本可以通过知道他的ID来告诉服务器并从服务器中提取信息,比如参数。不过,这不是一个跨服务器的功能,也不是持久的,与cookie不同,会话的到期时间通常很短,当用户关闭浏览器时就会到期。

此外,建议不要使用它来存储"获取"信息(如页码),因为它不能被重新引用。