我有一个有 3 页的网站,而每个页面都有从数据库中动态显示的文章,并且每个页面都有一个特定的article_id (int)
.. 为了使每个article_id
显示的评论非常好,我决定存储article_id
一会儿$_SESSION
,将评论插入到D b。
我现在的问题是我将有更多的文章,$SESSION
对于每篇文章/评论,它们会不会相互干扰或将来会出错?
谢谢
我需要会话的问题
我有一个有 3 页的网站,而每个页面都有从数据库中动态显示的文章,并且每个页面都有一个特定的article_id (int)
.. 为了使每个article_id
显示的评论非常好,我决定存储article_id
一会儿$_SESSION
,将评论插入到D b。
我现在的问题是我将有更多的文章,$SESSION
对于每篇文章/评论,它们会不会相互干扰或将来会出错?
谢谢
我需要会话的问题
在评论表单中,进行隐藏输入。
<input type="hidden" name="article_id" value = "<?php echo $row['article_id'];?>"/>
这$row['article_id']
将来自您用于显示文章的查询。
然后在提交表单时,文章 id 将出现在$_POST['article_id']
. 然后使用Insert
查询放置这些值。
在这种方法中,您只需要 1 个会话变量。即$_SESSION['username']
。
虽然它没有回答你的问题,但这是你应该如何处理的。
因为您需要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 的页面)。例如,您应该使用 session 来检查用户是否登录,或者存储用户信息,如用户 ID、用户名等,因为从逻辑上讲,用户将是浏览您的应用程序的人,您有时可能需要访问大多数页面中与用户相关的一些信息。SESSION 适合这里。
c)<input type="hidden" name="article_id" value="<?php echo $_GET['id']; ?>"/>
当您想发送一些隐藏值时,应使用隐藏字段,例如通过$_POST
插入数据库。
希望这可以帮助你。
除非你有成百上千的会话变量,或者在会话中存储数百个字节。否则大多数处理器将能够处理负载。
基本上,php 的默认会话处理程序将会话变量存储在每个会话的文件中。并在每次带有会话 cookie 的请求到达时加载它。因此,如果您的会话用于存储一些数据,它将在每个页面上加载。