网站上会有太多$ _SESSION影响/互相干扰

时间:2012-05-08 05:22:30

标签: php mysql session

我有一个包含3个页面的网站,而每个页面都有从数据库动态显示的文章,每个页面都有一个特定的article_id (int) ..要使每个article_id显示的评论都很好,我决定将article_id存储在$_SESSION中,同时将注释插入数据库。

我现在的问题是,我会为每篇文章/评论添加更多文章和$SESSION,它们是否会在未来互相干扰或错误运作?

由于

问题我需要哪个会话

http://www.stackoverflow.com/questions/10486305/variable-returning-0-instead-of-an-actual-value/10486418#comment13552062_10486418

3 个答案:

答案 0 :(得分:0)

在评论表单中,进行隐藏输入。

<input type="hidden" name="article_id" value = "<?php echo $row['article_id'];?>"/>

$row['article_id']将来自您用于展示文章的查询。

然后在提交表单时,文章ID将显示在$_POST['article_id']中。然后使用Insert查询放置这些值。

在这种方法中,您只需要1个会话变量。即$_SESSION['username']

答案 1 :(得分:0)

虽然它没有回答你的问题,但这是你应该如何处理。

因为您在发布评论时需要article_id,并且正在从数据库中提取该文章。在获取时创建一个隐藏的输入字段,如

<input type="hidden" name="article_id" value="<?php //article_id  ?>"/>

然后在提交评论时将此隐藏字段放在评论表单中,您将获得article_id

更新:
这是你应该如何决定使用什么以及何时使用。

a)当您需要将一个变量值从一个页面发送到另一个页面时,目的是维护它们之间的状态。例如,在一个页面中,您显示了一些文章,当用户点击read more...时,您想要显示带有评论的完整文章部分。那么你应该在这里使用锚标签。例如<a href="articledetail.php?id=2">Read More...</a>articledetail.php页面中,您可以使用php $_GET来获取数组中的url。在这种情况下,该值将为$_GET['id'] = 1

b)仅当您需要在整个应用程序中可以访问的内容时才使用会话,而不是像上面那样维护状态(这种情况不适用于基于AJAX的页面)。例如,您应该使用会话来检查用户是否登录,或者存储用户信息,如用户ID,用户名等,因为从逻辑上讲,用户将是浏览您的应用程序的用户,有时您可能需要访问在大多数页面中与用户相关的一些信息。 SESSION适合这里。

c)隐藏字段<input type="hidden" name="article_id" value="<?php echo $_GET['id']; ?>"/>  当您想要通过$_POST发送一些隐藏值以插入数据库时​​,应该使用它。

希望这会对你有所帮助。

答案 2 :(得分:0)

除非您有数百个会话变量,否则会话中会存储数百个字节。否则,大多数处理器将能够处理负载。

基本上,php的默认会话处理程序将会话变量存储在每个会话的文件中。每次带有会话cookie的请求到达时加载它。因此,如果您的会话用于存储一些数据,则会在每个页面加载。