【发布时间】:2013-07-16 11:04:18
【问题描述】:
我网站的网页通过使用GET 从预定义的 URL 中检索变量来显示网页。
例如第一页的代码:index.php
<p><a href="/blank.php?name1=value1&name2=value2">next page</a></p>
第二页:blank.php?name1=value1&amp;name2=value2
$name1 = $_GET['name1'] ;
$name2 = $_GET['name2'] ;
echo $name1 ;
echo $name2 ;
这种方式网页是在现场创建并显示的有点像 CMS,我对我网站的所有网页都使用这种方法,但是如果用户将标签添加为书签,他们将拥有该网页的过时信息,因为该页面内容包含在 URL 中。
编辑:如果我要使用post,它们会是将该信息传达给新网页的更好方式吗?而不是:
<form method="post" action="blank.php">
<input type="hidden" name="name1" value="value1">
<input type="submit">
</form>
【问题讨论】:
-
你应该使用 POST 而不是 GET。
-
那么,您是说使用参数为 URL 添加书签不起作用吗?看起来应该。
-
您可以创建一个随机链接,该链接会在一定时间后断开。
-
旁注:不要在没有过滤的情况下回显 GET-Vars,因为它使代码注入成为可能。见php.net/manual/de/function.htmlspecialchars.php
-
这是一种不寻常的页面生成方式。除了违反著名的“Cool URIs don't change”规则外,它还可能允许人们制作看似是您内容的一部分的 URL,但可以随便说什么。查询字符串通常会说明要显示的 type 内容,然后 DB 或类似内容会存储实际值,对于同一查询,该值可能会随着时间而变化。