这不是一个简单的“发布后”情况,因为页面被重定向回此处。
我有一个有点大的表单,大约有 20 个或更多输入字段。
因此,用户填写表单并提交,经过服务器端验证(如果有错误)后,用户将被重定向回与表单相同的页面。但没有值(value)观。所以,每次因为一个错误的输入,他就必须把整个事情填满。
那么,如何解决这个问题......
我看到有人建议使用$_SESSION来保存这些数据。安全吗?我有 20 多个输入,数据量很大..
最佳答案
如果您没有使用特定的 PHP 框架,有多种方法可以实现此目的。
1) 是的,如果提交后遇到某个无效字段,可以使用$_SESSION来存储信息。请记住使用 session_start()
来启动/访问 session 。这是一种安全的方法,除非你担心 session 劫持;但这是一个不同的话题,有它自己的预防方法。
2) 您可以将表单提交到与表单的 HTML 相同的页面(或需要 HTML 表单本身的页面/功能)。您可以在开头检查 $_POST
是否不为空或已设置。如果是这样,您可以执行字段检查并将其插入数据库。如果您遇到无效字段,则可以继续(或要求)表单 HTML。您仍然可以访问 $_POST,因此可以再次填写表单字段。你的代码可以有
<input type="text" name="first_name" value="<?php if(isset($_POST['first_name'])) echo $_POST['first_name'];?>" />
我相信这是处理您的问题的正确方法,因为它比以这种方式使用 $_SESSION 的麻烦要好得多。我不认为您需要实际“存储”您的案例的数据。
关于javascript - 即使页面重定向回来后如何保留表单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167955/