0

私は新しい PHP コーダーであり、最初に、新しい記事、記事の削除、記事の編集の 3 つのオプションを使用して、cms パネルのプロジェクトを開始しました。私のプロジェクトにはエラーが 1 つもありませんが、投稿を編集しようとすると、保存以外はすべてうまくいきます。投稿が保存されていません!!! エラーはありません。私は昨日からその問題を解決しようとしています。うざい。

ここに私のコードの一部があります:

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

それで、私を助けることができるなら、私を助けてください。ありがとう!!

4

2 に答える 2

0

4 行目で、id を小文字で参照します

$ctreat = getTreat($_GET["id"]);

小文字の id に注意してください

次に、ID大文字を参照するフォームで

<?php echo $_GET["ID"]; ?>

PHP は大文字と小文字を区別します... ID は大文字または小文字です

投稿 ID が送信フォームに送信されていません。これが問題のようです。

于 2013-02-04T15:02:03.253 に答える
0

いくつかの明らかな問題:

  1. id列は文字列ではないと確信しているので、なぜ引用符を付けるのですか?

    UPDATE `treatments` SET title = '$tName', content = '$tContent' WHERE ID = $id
    
  2. ユーザー入力をエスケープする必要があります。

    $tName = mysql_real_escape_string($tName);
    
  3. PHP では大文字と小文字が区別され$_GET["id"]ます。きっとあなたが使いたいです$_GET["id"]

    $ctreat = getTreat($_GET["id"]);
    VERSUS
    echo $_GET["ID"]; 
    
于 2013-02-04T15:32:34.400 に答える