2013-04-05 37 views
4

只是一个简单的问题。我是否正确使用PHP会话来在表单之间保存数据?

我有一个表单捕获一些数据,验证它,然后发布到同一网站上的另一个页面。如果没有错误,我使用header()来重定向,但显然数据不会在帖子中发送。

使用会话在两页之间保持数据是否正确?

谢谢你们。

+2

是的。这是完全可以接受的。 – Rawkode 2013-04-05 12:00:20

+0

唯一的问题是,如果您遇到需要多台计算机为您的应用提供服务的情况。然后,你必须与会话的问题......,并有移动到像高速缓存或DB – 2013-04-05 12:00:20

+1

我认为处理负载平衡器和多台服务器共享数据源的持久化数据是位从最初的问题跳跃,而技术上仍然有效 - 我想。 – Rawkode 2013-04-05 12:01:35

回答

3

如果你只需要在第二页上的数据,如果该数据不敏感,你还不如通过在报头中的数据()。

$url = "www.example.com?variable=value&id=something"; 
I.e. header('Location: $url'); 
0

这些类型的“flash消息”很好,并且是一种防止用户能够重新加载页面并重新提交表单的好方法,如果您担心这一点。我会提醒你在显示消息后取消会话增值。

0

是的,这是正确的做法。

但是,根据情况,还有其他替代方法,例如隐藏变量,iframe等。如果您能解释整个情况,根据数据的性质,我可以为您提供更准确的答案。

0

您可以将数据存储在服务器端(会话)或客户端(Cookie)上。您选择什么方式取决于数据类型和安全问题。

您也可以通过PHP直接在新的形式嵌件发布的数据,但不保存 - 但是如果你通过头重定向

0

是的,你可以这样做是行不通的,但会更加安全,加在与DUMMY或额外的领域的数据库。通过这个如果你需要丢弃,你可以丢弃虚拟记录。但是你需要有时间戳,所以你不要删除最近添加和正在处理的记录。

你也可以创建cron作业以清空表