在会话中存储php变量并调用分页链接

时间:2013-12-14 23:49:22

标签: php mysql pagination

目前我正通过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> ";

感谢

2 个答案:

答案 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().')';