最近在写一个php项目的时候犯了一个设计上的错误,原因是没有在开发前好好的设计。但用户填写好的表单被发送到一个后台页面处理时,如果表单中含有某些不符合要求的数据,那么后台页面就会跳转到前一个填写页面。但这个动作会导致用户填写的数据在跳转的时候全部丢失,试想,如果一个用户写了长篇大论,在提交的时候全然不知自己的数据会丢失(因为去另外一个页面),那么多恐怖啊?!
因此我想了两个办法:
1:在一进入后台页面的时候,首先把POST的数据转移到session中,a就存到a中,b就存到b中。所以遇到错误的时候,直接header到前一个页面就行了。哦,可以在header前把错误信息也一起存到session中。回到填写表单的页面,可以把session的数据读出来,给表单赋值。在页面的最后清楚session的值,这样每当页面被绘制完,页面就会清楚session,以免session中有太多的垃圾数据。
问题:这个方法不能随意的刷新页面,刷新会导致数据丢失。
2:就是表单先提交给自己,PHP_SELF。在页面的顶部(开始绘制html前)做判断,如果有提交的数据,那么检查数据是否符合要求。如果符合要,那么就交给后台去处理,否则就建立一个错误信息,然后在绘制html的时候直接把post的数据给表单赋值。
很晚了,睡觉了
一个表单提交失败的动作
最新推荐文章于 2022-08-16 00:37:39 发布