下面我有一行代码,用于说明用户当前所在页面的总页数。
<h1>CREATING QUESTIONS AND ANSWERS: SESSION (AAA) <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_count'] ?></h1>
例如,该行可以读取:
CREATING QUESTIONS AND ANSWERS: SESSION (AAA) 3 OF 3
现在我遇到的问题是,如果用户在第一页上,则不会显示数字1.因此,它不是声明1 OF 3或1 OF 5,而是声明2 OF 3或2 OF 5
所以我的问题是,当用户访问第一个会话(第一页)时,如何让第一页等于1 OF?
以下是当前代码:
if(isset($_POST['sessionNum'])){
//Declare my counter for the first time
$_SESSION['initial_count'] = $_POST['sessionNum'];
$_SESSION['sessionNum'] = $_POST['sessionNum'];
$_SESSION['sessionCount'] = 0;
}
else if ($_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
$_SESSION['sessionCount']++;
}
$sessionMinus = $_SESSION['sessionCount'];
$_SESSION['sessionNum']
是会话总数。因此,如果它是3 OF 5,那么$_SESSION['sessionNum']
是5。
答案 0 :(得分:0)
如果您想构建类似“向导”的东西,那么在会话中您将存储一些数据以跟踪用户活动和一般过程,您说“如果用户在第一个会话中......”那令人困惑,更好说“如果用户处于第一步”
说你想要在会话中存储,“用户在3个步骤中的第1步”,你需要
$_SESSION["user_track"] = array(
("current") => 1,
("next")=>2,
("total") => 3,
("previous") => 0
);
以及检查每一步的IF
if($_SESSION["user_track"]["next"] != $GLOBAL_STEP){
/*
$GLOBAL_STEP , a integer you defined in the current step say its 2
and users next step matches 2 then he/she is on the correct step
*/
}else if($_SESSION["user_track"]["next"] == $_SESSION["user_track"]["total"]){
/*At the ending step*/
}else{
// couldn't proceed to next step, something went wrong
}
希望有所帮助
答案 1 :(得分:0)
我建议:
$_SESSION
数组混淆。GET
参数(例如yourpage.php?step=X
),默认情况下,步长值为1。