我有一个包含3个页面的网站,而每个页面都有从数据库动态显示的文章,每个页面都有一个特定的article_id (int)
..要使每个article_id
显示的评论都很好,我决定将article_id
存储在$_SESSION
中,同时将注释插入数据库。
我现在的问题是,我会为每篇文章/评论添加更多文章和$SESSION
,它们是否会在未来互相干扰或错误运作?
由于
问题我需要哪个会话
答案 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的请求到达时加载它。因此,如果您的会话用于存储一些数据,则会在每个页面加载。