我是一个新的PHP编码器,我开始了一个cms面板项目,首先有三个选项:新文章,删除文章和编辑文章。我的项目中甚至没有一个错误,但是当我试图编辑帖子时,一切都进展顺利,除了保存。帖子没有保存!!!而且没有任何错误!我试图从昨天开始解决这个问题。这很烦人。
以下是我的代码的一部分:
editTreat.php:
<!DOCTYPE html>
<?php
include("includes/functions.php");
$ctreat = getTreat($_GET["id"]);
?>
<html lang="en">
<head>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<meta charset="utf-8" />
<title>Control panel</title>
</head>
<body>
<form action="doEditt.php" method="post">
<table>
<tr>
<td>
<label for="tName">:Title</label>
</td>
<td>
<input type="text" name="tName" value="<?php echo $ctreat["Title"]; ?>"></input>
</td>
</tr>
<tr>
<td>
<label for="tContent">:Content</label>
</td>
<td>
<textarea name="tContent"> <?php echo $ctreat["Content"]; ?> </textarea>
<script type="text/javascript">
CKEDITOR.replace('tContent');
</script>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Edit"></input></td>
<td> <input type="hidden" name="id" value="<?php echo $_GET["ID"]; ?>" /></td>
</tr>
</table>
</form>
</body>
</html>
doEditt.php:
<?php
include("includes/functions.php");
if(isset($_POST["submit"])) {
if(isset($_POST["tName"])) {
editTreat($_POST["tName"],$_POST["tContent"],$_POST["id"]);
header("Location: treatments.php");
} else {
echo "Please fill the title";
include("editTreat.php");
}
} else {
header("Location: editTreat.php");
}
?>
我的includes / functions.php的一部分:
function editTreat($tName, $tContent, $id) {
$id = (int) $id;
$query = mysql_query("UPDATE `treatments` SET title = '$tName', content = '$tContent' WHERE ID = '$id'") or die(mysql_error());
header("Location: treatments.php");
}
function getTreat($id) {
$id = (int) $id;
$query = mysql_query("SELECT * FROM `treatments` WHERE ID = '$id'") or die(mysql_error());
return mysql_fetch_assoc($query);
}
所以,如果你能帮助我,请帮助我。谢谢!
答案 0 :(得分:0)
在第4行,你引用id小写
$ctreat = getTreat($_GET["id"]);
注意小写ID
然后在表格中引用ID大写
<?php echo $_GET["ID"]; ?>
PHP区分大小写...是id大写或小写
帖子ID未发送到提交表单,这看起来是您的问题。
答案 1 :(得分:0)
一些明显的问题:
我确定 id 列不是字符串,为什么要引用?
UPDATE `treatments` SET title = '$tName', content = '$tContent' WHERE ID = $id
您应该转义任何用户输入。
$tName = mysql_real_escape_string($tName);
PHP区分大小写,您对$_GET["id"]
使用不同的大小写。我确定你想使用$_GET["id"]
!
$ctreat = getTreat($_GET["id"]);
VERSUS
echo $_GET["ID"];