2012-03-28 50 views
0
<?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至$_SESSION['sessionCount'],以及它是否$_SESSION['sessionNum'],然后停止加1 $_SESSION['sessionCount']如何停止加入了一些,当它达到其极限

另外,如果我回去以前的页面上,我回去到这个网页上,我想$sessionMinus回到“1”,最后,如果用户刷新页面,那么无论数量$sessionMinus是,保持它页面刷新时的数量。

+1

你试过了什么?听起来就像你只需要添加一些'if'语句。 – 2012-03-28 16:14:06

+1

这个问题肯定是第5或第6个问题,你就同一主题提出了问题 - 我今天看到代码'$ _SESSION ['sessionNum']'很多......也许是时候开始阅读[PHP教程](http: //php.net/manual/en/tutorial.php)...所以你实际上理解你的应用程序中的代码 – ManseUK 2012-03-28 16:18:23

+0

我已经订购了一本关于PHP的书,实际上它将在几天内发布。我是新来的PHP,所以我不明白它,但是当我得到这本书,然后希望我可以教自己:) – user1292857 2012-03-28 16:22:00

回答

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,他们已刷新页面。


¹You可以尝试通过$_SESSION做到这一点,再次,但实际上你只是猜测。没有办法知道一定的。

+0

如果我使用提交按钮,如果我说如果(isset('submit'))然后添加1,否则,如果它不(可以说页面刷新),那么不要添加一个数字,所以数字保持不变? – user1292857 2012-03-28 16:30:23

+0

@ user1292857:页面刷新也将包含提交值。正如我所说,不可能直接做到这一点。 – Jon 2012-03-28 16:47:36

+0

好,然后,1个最后的问题,试图获得当前页面上的$ sessionMinus返回到1,如果用户进入前一页,然后回到当前页面,我已经把\t \t如果'(!isset($ _ SESSION ['' sessionCount'])){ $ _SESSION ['sessionCount'] = 1; }'在上一页,所以当前页面回到1,但这是行不通的,我做错了什么? – user1292857 2012-03-28 16:57:09

0
if ($_SESSION['sessionCount'] < $_SESSION['sessionNum']) { 
    // sessionNum is bigger then sessionCount 
    $_SESSION['sessionCount']++; 
} 
相关问题