表格不会更新帖子

时间:2017-04-14 07:27:03

标签: php forms

我正在建立评论系统,我希望用户能够编辑它们。我已经建立了一个有效的发布系统和一个有效的删除系统。当我尝试更新帖子时,它会将我重定向到?edit_success网址。但是,它并没有更新帖子。

将用户带到更新页面的表单。

<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)

1 个答案:

答案 0 :(得分:1)

您尚未从代码的第二部分传递cid值。

您可以将其添加为

<input type='hidden' name='cid' value='".$cid."'>

您的代码对于valnurable sql injection是开放的

选中How can I prevent SQL injection in PHP?以阻止它。