隐藏get变量

时间:2010-09-04 13:24:01

标签: php jquery .htaccess mod-rewrite

我有一个使用get变量构建的url,如

location.href = this.href +'?type='+ escape($('#type_of_station').html()) + '&count='+ escape($('.number_changer').attr("id").slice(-1));

给了我一个像下面这样的网址

http://posnation.com/pre_config/pre_config_step_2.php?type=Grocery&count=2 

在下一页我通过PHP获取变量

<p id="type_of_station" class="text left"><?php $_GET['type'] != "" ? print str_replace("_", " ", $_GET['type']) : print "Food Pos System" ?></p>

这很有效,但网址很难看。有没有办法可以隐藏这个,并在下一页仍然可以获得获取变量

4 个答案:

答案 0 :(得分:3)

让网址看起来不错是一回事 隐藏网址数据是另一回事。永远不要隐瞒什或者您将使您的网站无法使用。

答案 1 :(得分:2)

您希望将变量发布到服务器,而不是将它们作为GET请求发送。

在PHP中,您可以使用$ _POST变量访问POST-ed变量。

简单形式:

form.php的

<form action="process.php" method="POST">
   username: <input type="text" name="username" value="" /><br/>
</form>

然后可以通过

在process.php文件中访问'用户名'POST-ed

process.php

echo $_POST['username'];

与GET请求不同,发送到服务器的值不会显示在URL中。

答案 2 :(得分:0)

使用$_POST代替$_GET,或将其保存在会话中并转到下一页。

编辑: 那就是你真的想要完全隐藏变量。正如其他人所暗示的那样:最好使用mod_rewrite使其看起来更好,而不会隐藏数据。

答案 3 :(得分:0)

为了解决这个问题,我在寻找解决方案的帖子上了...... - 即使这是一个迟到的答案,也许它会帮助某人:

对于我的使用,我得到了一个简单的解决方案:

在启动php会话之后,只需添加到index.php文件中:

if(isset($_GET))
{
header("Location:index.php");
$_SESSION['relink'] = $_GET;
}

您将在SESSION [&#39; relink&#39;]变量中获得任何GET值。然后重定向到index.php文件。浏览器地址中会有任何可见的痕迹。在你使用它之前检查数组的任何值。但至少你的浏览器地址是CLEAN!