至于不同的任务,您将传递不同的查询字符串:
<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
in$_SESSION
要么 in $_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;
评论:
1. 不要使用mysql_*
, but mysqli_*
or PDO
-> 使您的代码面向未来且更安全
2. 此代码在每个帖子周围创建一个表单,其中包含该帖子的 id(来自 db)的隐藏字段...
3. 和一个按钮,它将向用户发送不可见的 id page.php
。4. 在page.php
,你读到$_POST
,就像我上面的例子一样$_GET
:
if (isset($_POST['id'])) {
$do = $_POST['do'];
$id = $_POST['id'];
} else exit("blabla");
// etc.