javascript - 即使页面重定向回来后如何保留表单值

标签 javascript php forms redirect form-submit

这不是一个简单的“发布后”情况,因为页面被重定向回此处。

我有一个有点大的表单,大约有 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/

相关文章:

javascript - React-hook-form 与 Material UI RadioGroup 选择的值始终为 NULL

javascript - 未捕获的类型错误 : Cannot set property 'backgroundImage' of undefined althout js is called after page loads

php - 如何访问两个表之间的同名列

javascript - Jasmine 注入(inject)后 AngularJS Controller 为空

javascript - 如何在 JavaScript/TypeScript 中检测具有相同索引的嵌套循环

php - 电子邮件服务器;这种方法对垃圾邮件安全吗?

php - Paypal 不同的产品选择

Jquery 多种表单

javascript - 仅在一个验证器上去抖动

windows - C++ Windows 窗体应用程序是否需要 .NET Framework?