我知道通过表单提交,您只能使用 POST 或 GET 方法,不能同时使用两者。
但是我正在尝试制作一个论坛脚本,因此当您回复某个主题时,它会向数据库查询该主题并根据您提交回复时的 $_GET['id'] 为它提供reply_id。唯一的问题是当我按下提交以使用 POST 方法发布数据时,我无法在提交后将 $_GET 带到下一页。所以我无法查询 $_GET['id']。
现在,我想为什么不采取行动“topic.php?id=”,但由于某种原因这不起作用。
错误的是,当我在表单上按提交时,它甚至不会查询任何内容。:/
有人知道代码有什么问题吗?
形式:
<form action="topic.php?id=$postid" method="POST">
<textarea name="comment" class="field span6" rows="3" placeholder="Content..."></textarea><br /><br />
<input type="hidden" name="id" value="<?php echo $_GET['id'];?>">
<div><input type="submit" name="submit" value="Reply" /></div>
</form>
表单操作:
if(isset($_POST['submit'])) {
$postid=$_POST['id'];
$errors = array();
if(isset($_POST['comment'])){
if(empty($_POST['comment'])){
$errors[] = 'Error, try again!';
}
if(strlen($_POST['comment']) > 400){
$errors[] = 'Comment must be in a 10 to 400 characters range!';
}
if(empty($errors)){
//write to topics and replies tables
$q2 = @mysql_query("INSERT INTO reply VALUES('$postid', \"$comment\", now(), '$id')");
} else {
echo 'You have '. (count($errors) + 1).' errors in your form:<br />';
foreach($errors as $error){
echo $error .'<br />';
}
echo '<a href="new_topic.php">Try again</a>';
}
}