<?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当页面刷新时,请将其保留在该数字上。
答案 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']++;
}