0

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

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

4

2 回答 2

0

如果你想构建类似“Wizards”的东西,那么在会话中你会存储一些数据来跟踪用户活动和一般过程,你说“如果用户在第一个会话中......”这很令人困惑,最好说“如果用户处于第一步”

假设您要存储在会话中,“用户处于 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
}

希望能帮助到你

于 2012-07-04T11:41:12.157 回答
0

我会建议 :

  • 使用单词“page”或“steps”而不是“session”,因为“session”与$_SESSION数组混淆。
  • 为当前页面/步骤使用一个简单的GET参数(例如yourpage.php?step=X),默认情况下,步骤值为 1。
于 2012-07-04T11:49:55.417 回答