由于某种原因,此脚本未根据查询正确更新数据库。有没有人知道为什么脚本没有更新?请让我知道!
<?php
session_start();
include '../connect.php';
if(!isset($_SESSION['id'])){
header("Location: ../index.php");
}
if(isset($_POST['submit'])){
$id=$_POST['id'];
$postid=$_POST['postid'];
$content=$_POST['content'];
$title=$_POST['title'];
echo "<pre>";
print_r($_POST);
if(!empty($content)){
$content = mysql_real_escape_string($content);
} else {
echo 'You need to write something in your comment!';
}
$upd=mysql_query("UPDATE replies SET reply_content='$content' WHERE reply_id='$postid'");
if(!$upd){
echo 'Error: '.mysql_error();
}
} else {
if (isset($_GET['id'])){
$postid = $_GET['id'];
$id=$_SESSION['id'];
$q = mysql_query("SELECT * FROM `replies` where `reply_id`='$postid'");
if(!$q){
echo 'Error: '.mysql_error();
}
$res = mysql_fetch_assoc($q);
$q2 = mysql_query("SELECT topic_subject FROM `topics` where `topic_id`='$postid'");
$res2 = mysql_fetch_assoc($q2);
if(!q2){
echo 'Error: '.mysql_error();
}
if ($res['reply_by'] == $id){
} else {
header("Location: ../pagenotfound.html");
}
}
?>
<form action="edit.php">
<input type="text" name="title" value="<?php echo $res2['topic_subject'] ?>" disabled="disabled" />
<br />
<textarea rows="20" name="content" cols="50"><?php echo $res['reply_content']?></textarea>
<input type="hidden" name="postid" value="<?php echo $postid ?>" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
}
?>
如果您需要更多信息,请告诉我们!
更新:问题是当我点击提交时,它会将我发送到仍然列出表单的页面。当我尝试print_r($ _ POST)因为它实际上没有打印$ _POST时,我注意到了这个问题,我相信表格或者检查isset提交的地方是否有问题。
答案 0 :(得分:1)
尝试:
if(!empty($content)){
$content = mysql_real_escape_string($content);
} else {
echo 'You need to write something in your comment!';
// if $content is mandatory, you should put a die("error") here
}
您应该使用简单的
检查$ _POST数组echo "<pre>";
print_r($_POST);
并确保POST具有您正在寻找的变量(首先:提交)
编辑:在使用之前放置print_r($ _ POST):
if(isset($_POST['submit'])){
错误:您忘记设置表单方法类型。试试:
<form action="edit.php" method="post">
如果没有,表单将发送参数为$ _GET。
这是一个简单的php形式教程。 http://php.net/manual/en/tutorial.forms.php