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

「ウィザード」のようなものを構築したい場合は、セッションでユーザーのアクティビティと一般的なプロセスを追跡するためにデータを保存します。「ユーザーが最初のセッションにいる場合...」と言うと混乱します。ユーザーは最初のステップにいます」

セッションに保存したい場合、「ユーザーは合計 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

私はお勧めします:

  • $_SESSION「セッション」は配列と紛らわしいので、「セッション」の代わりに「ページ」または「ステップ」という単語を使用してください。
  • GET現在のページ/ステップ (例: ) に単純なパラメーターを使用するyourpage.php?step=Xには、デフォルトでステップ値が 1 になるようにします。
于 2012-07-04T11:49:55.417 に答える