我在单个index.php页面上有一个链接结构,比如index.php?lang=eng&主题=黑暗&例如,page=商店。我确实需要从链接中获取GET变量,为每个访问的页面提供适当的内容和配置。然而,我只想显示页面的名称,比如default.php,或者如果可能的话,如果页面=shop,我想显示shop.php,如果页面=chat,我想展示chat.php。有人能推荐我该用什么技巧吗?
如果您想这样做,您应该使用POST而不是GET,因为它不会在URL栏中显示其变量。
在PHP中,您可以通过使用$_POST['var']
而不是$_GET['var']
来查找POST变量的值,但如果它们不会显示在URL中,您将如何首先使用打开它们?
答案是使用一个看起来像普通链接的表单,其中的元素作为PHP POST内容的变量。这里有一个例子:
...
<form name="openPage2" method="post" action="path/to/page2.php">
<input type="hidden" name="lang" value="en" />
<input type="submit" value="Page 2"/>
</form>
...
现在,这将做的非常简单。假设包含此表单的当前页面为mywebsite.com/index.php
。有一个标签为Page 2的按钮,表单中的其他内容都被隐藏了。单击第2页时,浏览器将转到mywebsite.com/path/to/page2.php
,URL栏中没有任何可见的变量。但是,我们已经将隐藏的输入放入表单中,当您单击第2页时,表单将作为POST提交。意思是,在第2页上,你可以这样做来获得语言:
...
<?php
$lang = $_POST['lang'];
setLang($lang);
?>
...
$lang现在将是"en"
,因为这是形式值。您可以随意放置任意多的隐藏输入,它们都不会显示在URL栏中,因为它们是POST,而不是GET。
希望有帮助!