对于传递到不同页面的 URL 变量,哪种方法更可靠、更好、更安全:1)。使用 SESSION 变量作为 URL 参数,或
2)。常规查询字符串参数。
“更可靠、更好、更安全”: 1. 防止来自客户端的问题,例如当用户禁用 cookie 2. 浏览器兼容性 3. 进行 API 调用(因为某些 API 存在限制和兼容性问题) 4 . 资源和内存使用情况,以及处理速度
我正在创建一个站点,其中 URL 中的查询字符串参数的数量可能会有所不同(URL 中可能携带 9 个值) - 基于用户输入。将变量值存储在会话变量中似乎比在 URL 参数中携带所有变量值(可能是 9 个)更容易。但是由于上面提到的 4 个问题,我对使用 SESSION 变量犹豫不决。
感谢您的任何建议!
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>
当然,如果我使用 SESSION 变量路由,用户输入值将从 URL 点击获取并存储在 SESSION 变量中,直到会话结束。
if (isset($_GET["store"])) {
$_SESSION["shopByStore"] = $_GET["store"];
}