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