【发布时间】:2017-11-05 01:39:55
【问题描述】:
我正在尝试使用会话来保存表单输入,但它仅适用于最后提交的表单。
我有一个 index.php 是这样的:
<?php
session_start();
$_SESSION['number-of-sessions'] = 0; ?>
...
然后,有一个指向 form.php 的链接:
...
<form action='display.php' method='post'>
<input type='text' name='name'/>
<input type='text' name='id'/>
<input type='submit' value="Submit"/>
...
这里是 display.php:
<?php
session_start();
$_SESSION['number-of-sessions']++;
$_SESSION[$_SESSION['number-of-sessions']] = $_POST;
?>
...
<?php
for($i = 1; $i <= $_SESSION['number-of-sessions']; $i++) {
print_r($_SESSION[$i]));
}
?>
// another link that goes back to form.php
所以基本上,它总是打印最后提交的表单,而其他的只是空白。
有没有其他方法可以做到这一点,或者我做得对吗?
ps:我不能使用数据库。
【问题讨论】:
-
在您正在测试的浏览器中启用了 Cookie?确保 PHPSESSID 存在于您的 cookie 中,并且它在页面请求之间没有变化(如果是,那么会话中断了)。
-
是的,cookies 已启用,我的会话 ID 相同。
-
你永远不会回到
index.php对吗?您只是在提交多个表单的同一会话中在form.php和display.php之间弹跳?都在会话超时时间内所以不会超时?