我正在评论系统,我希望用户能够编辑它们。我已经制作了一个有效的发布系统和一个可行的删除系统。当我尝试更新帖子,虽然它将我重定向到?edit_success url。但它只是不更新帖子。表格不更新帖子
将用户带到更新页面的表单。
<form class='edit-form' method='POST' action='editmessage.php'>
<input type='hidden' name='cid' value='".$row['cid']."'>
<input type='hidden' name='uid' value='".$row['uid']."'>
<input type='hidden' name='date' value='".$row['date']."'>
<input type='hidden' name='content' value='".$row['content']."'>
<button>Edit</button>
</form>
提交表单后,它进入这个PHP文件
<?php include('header.php'); ?>
<body>
<div class="container">
<?php
$cid = $_POST['cid'];
$uid = $_POST['uid'];
$date = $_POST['date'];
$content = $_POST['content'];
echo "<form method='POST' action='includes/edit_post.inc.php'>
<input type='hidden' name='uid' value='".$_SESSION['username']."'>
<input type='hidden' name='date' value='".date(' Y-m-d ')."'>
<textarea class='ckeditor' name='content2'></textarea>
<br>
<button type='submit' class='btn btn-default' name='submit_vault_edit'>Edit</button>
</form>";
?>
</div>
<?php include('footer.php'); ?>
进入后这种形式是不言而喻的PHP脚本,更新后
<?php
include 'dbh.php';
if (isset($_POST['submit_vault_edit'])) {
$cid = $_POST['cid'];
$uid = $_POST['uid'];
$date = $_POST['date'];
$content = $_POST['content2'];
$sql = "UPDATE vaults SET content='$content' WHERE cid='$cid'";
$result = mysqli_query($conn, $sql);
header("Location: http://www.generationdiary.com/user_vault.php?editsuccess");
}
我所有的数据库连接是正确的,一切都在这个意义上建立我只是觉得我在我的最后一位代码有问题(代码块3)
你没有从post方法传入'$ cid'! – Saty
OMG !!!我怎么错过那个先生,谢谢你! – cosmichero2025
永远不会信任来自用户的数据 - >您应该真的**考虑使用[PPS:Prepared Parameterized Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。这将有助于[阻止SQL注入](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。它也有助于使用'error_reporting(E_ALL); ini_set('display_errors',1);'在你的页面之上,让PHP警告你。正如@Saty所说的那样,好像你错过了$ var – OldPadawan