每次提交表单时,我希望$id
增加1。然后它应该附加到数组$users.
为什么这不起作用?
<?php
$users = array();
$id = 0;
if(isset($_POST["submit"])){
$id = $id + 1;
$users[] = $id;
}
echo "<pre>";
print_r($users);
echo "</pre>";
?>
<form action="random.php">
buy a ticket
<input type="submit" name="submit">
</form>
答案 0 :(得分:3)
这是因为一旦PHP代码停止执行$id
的值,$users
就永远消失了。 HTTP和PHP是无状态的。一旦该页面被处理,它就会消失,就像它从未存在过一样。如果要保持状态,则需要使用持久数据存储,如会话或数据库。
<?php
session_start();
if(isset($_POST["submit"])){
if (!isset($_SESSION['users'])) { $_SESSION['users'] = 0 }
$_SESSION['users']++;
}
echo "<pre>";
print_r($_SESSION['users']);
echo "</pre>";
?>
<form action="random.php" method="post">
buy a ticket
<input type="submit" name="submit">
</form>
N.B。:当未定义方法时,表单默认为GET,因此您需要method="post"
,因为您正在使用POST变量。