下面我有一行代码,它指出用户当前在总页数中的哪个页面。
<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 的 3 或 1 的 5,而是陈述 2 的 3 或 2 的 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 的 5,那么$_SESSION['sessionNum']
是 5。
如果你想构建类似"向导"的东西,那么在会话中,你会存储一些数据来跟踪用户活动和一般过程,你说"如果用户在第一个会话中......"这很令人困惑,最好说"如果用户处于第一步"
假设您要存储在会话中,"用户处于总共 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
}
希望对您有所帮助
我建议:
- 使用单词"页面"或"步骤"而不是"会话",因为"会话"与
$_SESSION
数组混淆。 - 对当前页面/步骤使用简单的
GET
参数(例如yourpage.php?step=X
),其中默认情况下步长值为 1。