目前,在显示用户发布的所有帖子时,我会执行以下操作:
while($info=mysql_fetch_array($data)) {
echo "<div id = 'posts'>";
echo $info['subject'];
echo $info['post-item'];
echo "</div>";
}
但是,但是,我现在需要将获取的每个元素视为实际帖子而不仅仅是输出div
以获取每个帖子的post_id,以便能够实际使用户能够与不同的帖子进行交互,例如“喜欢”一个帖子。
我曾尝试将类似 href
的超链接添加到?id=$thispost
,但是有一些问题,例如用户更改了网址,或者即使我想添加评论功能,我也会需要一种不同的方法!
答案 0 :(得分:2)
对于不同的任务,你会传递不同的查询字符串:
<a href="page.php?do=like&id=2">like this</a>
<a href="page.php?do=comment&id=2">comment</a>
<a href="page.php?do=share&id=2">share this</a>
在page.php
中,您会......
if (isset($_GET['do'] && isset($_GET['id'])) {
$do = $_GET['do'];
$id = $_GET['id'];
} else exit("blabla");
switch ($do) {
case 'like':
// do sth
break;
case 'comment':
// do sth
break;
// etc.
} // switch
当然,通过URL传递值会打开操纵门
因此,要么$do
还要$id
或$_SESSION
中存储$_POST
和$_POST
。
$h = "";
while ($info = mysql_fetch_array($data)) {
$h .= '<div id = "posts">';
$h .= '<form method="post" action="page.php">';
$h .= "{$info['subject']}<br />{$info['post-item']}";
$h .= "<input type=\"hidden\" name=\"id\” value=\”{$info['id']}\” />';
$h .= '<input type="submit" name="do" value="like" />';
$h .= '</form></div>';
}
echo $h;
的示例:
mysql_*
评论:
1.不要使用mysqli_*
,而是PDO
或page.php
- &gt;使您的代码面向未来,更安全
2.此代码围绕每个帖子创建一个表单,其中隐藏字段包含该帖子的id(来自db)...
3.以及一个按钮,它会将用户看不见的ID发送到page.php
。
4.在$_POST
中,您阅读了$_GET
,就像我上面的if (isset($_POST['id'])) {
$do = $_POST['do'];
$id = $_POST['id'];
} else exit("blabla");
// etc.
一样:
{{1}}