如何让首页每次都等于 1


How to get first page to equal 1 everytime

下面我有一行代码,它指出用户当前在总页数中的哪个页面。

<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。