如何让第一页每次都等于1

时间:2012-07-04 11:11:37

标签: php

下面我有一行代码,用于说明用户当前所在页面的总页数。

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

2 个答案:

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