使用会话保存表单信息

时间:2017-11-05 01:39:56

标签: php forms session

我尝试使用会话来保存表单输入,但它仅适用于最后提交的表单。

我有一个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

所以基本上,它总是打印提交的最后一个表单,其他表只是空格。

还有其他方法可以做到这一点,还是我做得对?

p.s:我不能使用数据库。

1 个答案:

答案 0 :(得分:0)

毫不奇怪,每个会话都有一个新的$_SESSION,因此以任何方式存储任何信息都不会有效。

如果要跨会话保留数据,则必须将其保留在某个位置。例如,如果您不能使用数据库,请考虑将其写入文件。