如何在达到限制时停止添加数字

时间:2012-03-28 16:09:28

标签: php

<?php
    session_start();


        if(isset($_POST['sessionNum'])){
            //Declare my counter for the first time

            $_SESSION['initial_count'] = $_POST['sessionNum'];
            $_SESSION['sessionNum'] = $_POST['sessionNum'];

    }

    if(!isset($_SESSION['sessionCount'])){
         $_SESSION['sessionCount'] = 1;
    }
    else
    {
         $_SESSION['sessionCount']++;
    }

$sessionMinus =  $_SESSION['sessionCount'];


?>

我如何获得它,以便$_SESSION['sessionCount']小于$_SESSION['sessionNum'],,然后将{1}添加1,如果等于$_SESSION['sessionCount'],则停止向{{{1}添加1 1}}?

此外,如果我返回上一页并返回此页面,我希望$_SESSION['sessionNum']返回到'1',最后如果用户刷新页面,那么任何数字{{1当页面刷新时,请将其保留在该数字上。

2 个答案:

答案 0 :(得分:1)

  

如果$ _SESSION ['sessionCount']小于,我如何得到它   $ _SESSION ['sessionNum'],然后将1添加到$ _SESSION ['sessionCount']并且   如果它等于$ _SESSION ['sessionNum'],则停止添加1   $ _SESSION [ 'sessionCount']?

if (!isset($_SESSION['sessionCount'])) {
    $_SESSION['sessionCount'] = 1;
}
else if ($_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
    ++$_SESSION['sessionCount'];
}
  

如果我回到上一页然后回到这个页面,我   希望$ sessionMinus回到'1'

为此,您必须在上一页中设置$_SESSION['sessionMinus'](或其他变量)。到达页面后,了解前面发生的事情的唯一方法是通过$_SESSION变量。你无法当场检测到它。

  

最后如果是用户   刷新页面,然后$ sessionMinus的数量,保持打开   页面刷新时的那个数字。

这是不可能的。您无法判断页面是否从头开始刷新或加载¹。您可以做的是使用PRG pattern并将“P”页面计为“用户刚到这里”,将“G”页面计为“用户刷新页面”。您可以在“P”页面设置变量(例如$_SESSION['redirecting'] = true)并在“G”页面($_SESSION['redirecting'] = false)上进行修改;就在你这样做之前,检查它是否是true开始。如果是,则由于您的重定向(仅发生一次),用户就在这里。如果已经false,则会刷新页面。


¹您可以尝试再次通过$_SESSION进行操作,但实际上您只是在猜测。没有办法确切知道。

答案 1 :(得分:0)

if ($_SESSION['sessionCount'] < $_SESSION['sessionNum']) { 
    // sessionNum is bigger then sessionCount
    $_SESSION['sessionCount']++; 
}