我的$ _SESSION变量不会保持其值.任何想法为什么?

0 php

我希望它增加和减少值$_SESSION['selection'].
下一个表单上的Mousedown会导致:" 会话为1 ".
上一个表单中的Mousedown导致" 会话为-1 ".

这是代码:

  <?php

    if (isset($_POST['next'])) {
      displaynext();
    }
    else if (isset($_POST['previous'])) {
      displayprevious();
    }
    else {
      session_start();
      echo "session started";
      $_SESSION['selection'] = 1;
    }

    function displaynext() {
      $_SESSION['selection'] = $_SESSION['selection'] + 1;
      echo "The session is $_SESSION[selection]";
    }

    function displayprevious() {
      if ($_SESSION['selection'] != 1) {
        $_SESSION['selection'] = $_SESSION['selection'] - 1;
      }
      echo "The session is $_SESSION[selection]";
    }

    ?>

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
      <input type="submit" name="previous" value="Previous">
    </form>

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
      <input type="submit" name="next" value="Next">
    </form>
Run Code Online (Sandbox Code Playgroud)

Nul*_*ion 5

session_start()呼叫置于文件的开头; 紧接着<?php打开的标签.您还需要在计划使用会话的每个脚本上执行此操作.

顺便说一下,而不是写:

$_SESSION['selection'] = $_SESSION['selection']-1;
$_SESSION['selection'] = $_SESSION['selection']+1;
Run Code Online (Sandbox Code Playgroud)

您可以使用

$_SESSION['selection']--;
$_SESSION['selection']++;
Run Code Online (Sandbox Code Playgroud)

阅读:增量/减量运算符