如何让会话更新php中的值?

时间:2012-07-20 18:03:17

标签: php session

我无法更新会话值

这是代码

<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)

感谢

2 个答案:

答案 0 :(得分:3)

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

您还应该听取John Conde的建议并确保在发送任何输出之前启动PHP会话。请阅读the manual

答案 1 :(得分: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>