0

我无法更新我的会话值

这是代码

<CENTER>
<?PHP
    session_start();


$_SESSION['value'] = 15;

    if(isset($_POST['submit'])){
    $plus = 10;
    $_SESSION['value'] = ($_SESSION['value']  + $plus);
    }

echo "<FORM METHOD=post ACTION=\"?page=try&". time(). "\" NAME=try>\n"; 
echo "<br>";
echo "Your value :" .$_SESSION['value'];
echo "<INPUT TYPE=submit NAME=submit VALUE=\"Submit\"></FORM>";
?>
</CENTER>

问题是每次我单击该按钮时,它总是给我相同的结果。

永远$_SESSION['value']是 15 并且永远不会改变

那么如何更新会话值?所以当我再次点击按钮时,我会$_SESSION['value']变成 35 (过去的结果是 25 )

谢谢

4

2 回答 2

3

您将会话值显式设置为 15,然后将其添加 10。它永远不会达到 35。尝试将分配删除到 15(或者更好的是,if(!isset($_SESSION['value']))在它之前添加一个检查),然后再试一次

您还应该接受 John Conde 的建议,并确保在发送任何输出之前启动 PHP 会话。请阅读手册

于 2012-07-20T18:16:34.787 回答
1

session_start()必须在任何输出发送到浏览器之前(使用基于 cookie 的会话时)。

<?php session_start(); ?>
<CENTER>
<?php
$_SESSION['value'] = 15;

    if (isset($_POST['submit'])) {
        $plus = 10;
        $_SESSION['value'] = ($_SESSION['value']  + $plus);
    }

echo $_SESSION['value'];
echo '<form method="post" action="try1.php" name="try">' . "\n";
echo '<br>';
echo 'Your value :' . $_SESSION['value'];
echo '<input type="submit" name="submit" value="submit"></form>';
?>
</CENTER>
于 2012-07-20T18:07:07.503 回答