0

送信コードが実行された後、以下のコードを実行する必要があります。

session_start();

if(isset($_POST['sessionNum'])) {
            //Declare my counter for the first time

            $_SESSION['initial_count'] = $_POST['sessionNum'];
            $_SESSION['sessionNum'] = intval($_POST['sessionNum']);
            $_SESSION['sessionCount'] = 1;
 }
 else if (isset($_POST['submitDetails']) && 
       $_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
    $_SESSION['sessionCount']++;
 }

$sessionMinus =  $_SESSION['sessionCount'];

以下のコードをエコーすると:

<?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_count'] ?>

送信ボタンがクリックされるたびに、$sessionMinusの数値が数値よりも小さい場合、ページが送信されるたびに、の数値が 1 ずつ$_SESSION['initial_count']増加する必要があります。$sessionMinus

しかし、それは数字を1ずつ追加していません。$sessionMinusページが送信されるたびに「1」を出力し続けます。コードで何を変更する必要がありますか?

a を実行したところ、次のvar_dump($_SESSION);ように出力されました。

array(3) { 
   ["sessionCount"]=> int(1) 
   ["initial_count"]=> string(1) "5" 
   ["sessionNum"]=> int(5) 
}
4

2 に答える 2

0

あなたのコメントを読んだ後、これがあなたが求めているものだと思います:

if(!isset($_SESSION['sessionCount']) || !$_SESSION['sessionCount'] ) {
    //Declare my counter for the first time

    $_SESSION['initial_count'] = $_POST['sessionNum'];
    $_SESSION['sessionNum'] = intval($_POST['sessionNum']);
    $_SESSION['sessionCount'] = 1;
 }
 else if (isset($_POST['submitDetails']) && 
       $_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
    $_SESSION['sessionCount']++;
 }

$sessionMinus =  $_SESSION['sessionCount'];
于 2012-09-16T12:55:40.703 に答える
0

次のようにデバッグします。

session_start();

var_dump( $_POST, $_SESSION ); //See that the post and session parameters you think should be there, really are there.
if(isset($_POST['sessionNum'])) {
            //Declare my counter for the first time

            $_SESSION['initial_count'] = $_POST['sessionNum'];
            $_SESSION['sessionNum'] = intval($_POST['sessionNum']);
            $_SESSION['sessionCount'] = 1;
 }
 else if (isset($_POST['submitDetails']) && 
       $_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
    var_dump( $_SESSION['sessionCount'] ); //check the current count (and that you really are here.
    $_SESSION['sessionCount']++;
    var_dump( $_SESSION['sessionCount'] ); // Check that the count is updated correctly.
 }

$sessionMinus =  $_SESSION['sessionCount'];
于 2012-09-16T13:25:44.743 に答える