2010-07-10 106 views
1

我有在我是如何做到这一点的认识麻烦:会话问题

    我主页上的项目,当用户对鼠标,我把他们带到一个网页,我问的
  • 有无名单姓名和电子邮件ID(两者都是可选字段),当用户点击提交时,我会将他们带到其他页面以查看所有详细信息。该名称和电子邮件字段的原因是将该ip地址存储在mysql中以及它们所在的url(具有项目标识和日期)。

要做到这一点,我有在程序做麻烦。

  1. 我打算一旦他们点击提交就开始会话/存储cookie。之后,我想存储的IP地址,商品编号,日期和名称/电子邮件(如果他们填写)在MySQL数据库
  2. 存储所有的MySQL数据库

此外,我怎么能避免任何会直接到页面(我提交后显示的那个)?有什么办法可以在该页面上添加一些条件并将它们重定向到此页面上的日志?

请帮我一把。

问候

+0

“为名字和电子邮件领域的原因是存储在MySQL中的IP地址,并在网址(有项目编号和日期),他们都在。”你不需要询问名字和电子邮件。 – Artefacto 2010-07-10 15:00:36

+0

我同意你的观点,尽管我需要这样做,因为当用户点击主页中的项目列表时,只有当项目是用于今天的时候,表单字段中的日志才会显示,如果项目在未来。所以为了使这种情况正确,我认为我会显示这个日志的项目,并说,项目现在正在显示,提交看它。而他们这样做,我会收集ip,项目的细节只是今天的事件。这样我可以避免会议/存储的东西不是今天的项目。 – Jay 2010-07-10 15:06:09

回答

1

由于数据似乎只为眼前的使用是必要的,我认为一个会话是在这种情况下,正确的答案。
如果您将使用数据库查询,您将存储哪些数据以将数据关联到正确的用户?正如你所说,你所要求的数据都是可选的;即使在不可选的情况下,您如何处理两个不同的用户报告相同的名称和电子邮件(它也可以是使用两个不同浏览器的同一用户)。

对于这样的临时数据,会话永远是更好的选择(可能除少数例外)。

我忘记了另一个问题。
在这种情况下,我会使用会话变量。会话变量是您想要在不同表单之间保留的值的解决方案,无需在服务器和客户端之间继续移动它们。

有关会话的详细信息,请参阅PHP: Sessions

+0

我仍在为此工作。一旦我完成,我会发布我的反馈。再次感谢! – Jay 2010-07-13 12:06:50

2

既然你设置会话变量,当用户点击提交按钮,你可以,如果这些变量中的一个设置或测试,并相应重定向。

你也可以做到这一点与POST,使用页面作为一个动作表单,每当有人访问该页面,您测试,如果(从表单)$ _ POST变量的设置与否。

+0

我不确定如何开始会话,我如何验证其工作与否。我应该在页面上显示登录页面还是在页面上点击提交按钮后开始会话? – Jay 2010-07-10 15:03:31

+0

@Jay:只需使用'session_start()'。如果你想验证会话是否已经启动(为了避免再次启动),那么检查'session_id()'返回的值。如果会话尚未启动,返回的值将是一个空字符串。 – kiamlaluno 2010-07-10 15:09:22