0

初めて $_SESSION 変数を使用していますが、何が起こっているのか理解できません。このコードでやりたいことは、「送信」ボタンが押されるたびにカウンターを更新することです。ゼロから始まり、最初のクリックで 1 に更新されます。その後、1 でスタックし、それ以降は更新されないようです。いくつかの例をたどってきましたが、なぜこのように振る舞うかについての説明が見つからないようです。私は何を間違っていますか?それはかなり基本的なものだと確信していますが、私の人生では、それが何であるかを理解することはできません.

よろしくお願いします。

 1 <?php
 2         session_start();
 3         $_SESSION['counter']=((!isset($_SESSION['counter']))? 0 : $_SESSION['counter']);
 4         if($_POST['submit']){
 5                 $_SESSION['counter']++;
 6         }
 7 ?>
 8 <html>
 9 <body>
10 <form  method = "post">
11         <input type="submit" name="submit" value = "Submit button" />
12 </form>
13         <div name = "content">
14                 <h3>Submit has been clicked <?php echo $_SESSION['counter'] ?> times</h3>
15         </div>
16 </body>
17 </html>
4

2 に答える 2

1

このコードを試してください...ページが読み込まれるたびにカウンターを0にリセットしていると思います。

<?php
session_start();
if (!isset ($_SESSION['counter'])) {
  $_SESSION['counter'] = 0;
}
if (isset ($_POST['submit'])) {
  $_SESSION['counter']++;
}
?>
于 2012-06-20T16:00:29.680 に答える
1

の元の設定に由来する可能性があります$_SESSION['counter']

私はそれを別の方法で開始します:

if($_POST['submit'] && isset($_SESSION['counter'])){
        $_SESSION['counter']++;
}else{
        $_SESSION['counter'] = 0;
}
于 2012-06-20T16:01:40.410 に答える