我通过链接从查询传递以下变量:
<a href="middle.php?name=<?php echo $name; ?>&id=<?php echo $id1; ?>&rowid=<?php echo $rowid; ?>&record=<?php echo $record; ?>">
变量将传递到此页面:
session_start();
//$id = ($_GET['id']);
if (isset($_GET["record"])) {
$_SESSION["record"] = $_GET["record"];
}
if (isset($_GET["id"])) {
$_SESSION["id"] = $_GET["id"];
}
if (isset($_GET["rowid"])) {
$_SESSION["rowid"] = $_GET["rowid"];
}
if (isset($_GET["name"])) {
$_SESSION["name"] = $_GET["name"];
}
if (isset($_GET["store"])) {
$_SESSION["store"] = $_GET["store"];
}
然后用户被重定向到这个页面,我试图使用会话变量分配给页面中的变量,如下所示:
session_start();
$id = $_SESSION[id];
$rowid = $_SESSION[rowid];
$name = $_SESSION[name];
$record = $_SESSION[record];
变量无法访问,因为我需要它们在此页面上。我错过了引号吗?再次使用会话变量的最佳方法是什么?
仅供参考,他们主要用于其他类似的查询:
"SELECT * FROM mgap_orders WHERE mgap_ska_id = '" . $_SESSION['id'] . "' AND mgap_status = 0 GROUP BY mgap_ska_report_category LIMIT 5";
答案 0 :(得分:2)
我错过了引号吗?
是。你说你正在这样访问它们:
$id = $_SESSION[id];
那应该是这样的:
$id = $_SESSION['id'];
但更重要的是,为什么你需要在这里使用会话?您描述情况的方式是:
如果他们要查询字符串值,请将它们作为重定向中的查询字符串值。所以你可能会遇到这样的事情:
header('Location: somePage.php');
您可以包含以下值:
header('Location: somePage.php?name=' . $name');
其余值的等等,就像在为执行重定向的页面构建原始链接时一样。
此外,虽然您没有显示您的数据访问权限,但您确实显示的查询似乎容易受到SQL注入攻击。最终,您使用的值来自用户输入(查询字符串),因此您不应将它们直接连接到SQL查询中。