2014-10-30 113 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不同,会话过期通常很短,并在用户关闭浏览器时到期。

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