目前我正通过GET呼叫以下内容
$RimWidth = $_GET['RimWidth'];
$TyreWidth = $_GET['TyreWidth'];
$Aspect = $_GET['Aspect'];
$TyreDia = $_GET['TyreDia'];
$TyreMan = $_GET['TyreMan'];
然而,在我的分页中,在第1页之后,它会丢失变量并且不起作用。我知道我需要将它们存储在会话中。我是如何做到这一点的,因为我已经看到了一些方法,并且无法使它工作,我如何将它们放在看起来像这样的分页链接的末尾
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
感谢
答案 0 :(得分:0)
如果使用会话,您需要在PHP页面的顶部:
session_start();
然后,你应该为每一个做到这一点:
$RimWidth = isset($_GET['RimWidth']) ? trim(strip_tags($_GET['RimWidth'])) : null;
$_SESSION['RimWidth'] = $RimWidth;
// and so on
trim()
和strip_tags()
会删除所有不需要的空白区域,并删除发送到您网页的所有恶意脚本标记。永远不要相信任何POST,GET或SESSION数据。他们都可能被黑客入侵。如果RimWidth总是返回一个整数,那么先放(int)
,如下所示:
(int) $RimWidth = isset($_GET['RimWidth']).............
您不需要将会话变量添加到分页链接的末尾,它们是会话变量,可以在下一页或任何其他页面上使用。
要在其他页面上调用它们,请执行以下操作:
echo $_SESSION['RimWidth'];
答案 1 :(得分:0)
如果你想重复$ _GET值,你可以创建一个函数:
//A function to get and repeat arguments in every link
function repeatvars(){
if(isset($_GET) && empty($_GET) == false){
$variables = "?";
$arraycount = count($_GET) - 1;
$count = 0;
foreach ($_GET as $var => $value){
if(empty($value) == true){
$variables .= $var;
}else{
$variables .= $var."=".$value;
}
if ($count !== $arraycount){
$variables .= "&";
}
$count++;
}
return $variables;
}}
//Example
echo '<a href="nextpage.php'.repeatvars().'">Next Page</a> (Link: nextpage.php'.repeatvars().')';