这是用于将传递给不同页面的URL变量更可靠,更良好,更安全的方法: 1)。使用会话变量作为URL参数,或

2)。定期查询字符串参数。

“更可靠,更好,更安全”,关于: 1.防止从客户端导出的问题,例如当用户禁用cookie时 2.浏览器兼容性 3.制作API调用(因为某些API具有限制和兼容性问题) 4.资源和内存使用,以及处理速度

我正在创建一个网站,其中URL中的查询字符串参数的数量可能会有所不同地(在URL中携带的可能9值) - 基于用户输入。将会话变量中的变量值更容易存储比在URL参数中携带所有它们(可能为9)。但由于上面提到的4个问题,我犹豫了使用会话变量。

谢谢任何建议!

ps。 URL参数正在动态构建 进入$ URL变量,如下所示:

$keyword = trim($_GET["Keyword"]);

$url = "webpage.php?";
$url .= "&Keyword=$keyword";

$shopByStore = $_GET["store"];
if (!empty($shopByStore)) {
$url .= "&store=$shopByStore";
}
// with 7 more GET methods potentially retrieving values for the URL parameters 
.

URL将如下所示:

<a href="<?php echo $url; ?>">anchor text</a><br>
.

当然如果我去会话变量路线,则将从URL点击获取用户输入值并在会话变量中存储,直到会话结束。

if (isset($_GET["store"])) {
$_SESSION["shopByStore"] = $_GET["store"];
}  
.

有帮助吗?

解决方案

当然,可以在会话变量中保存提交的关键字以获取搜索。

但它有用吗?不。

会话变量将忘记一切,当会话变得销毁时。也许用户想要保存搜索或将它们提供给另一个用户?

与get-parameters,它不是问题,只需复制完整的URL并保证它。

但具有SESSION参数?不可能。每个用户都有自己的会话,下次用户访问该站点时,他会得到另一个会话(例如,如果用户之前关闭浏览器)。

在会话中,您应该只存储用户特定信息。例如,UserID,用户名或购物篮。

只有for SESSION vs GET的一些点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top