0

それで、私はたくさんの作業指示書を載せたページを持っています。各ワークオーダーは 1 つのテーブルの行であり、while() ステートメントでページに配置されます。while() 内に配置した単純なフォームと、テーブルに実際に情報を追加する UPDATE/WHERE ステートメントを使用して各行を更新しようとしています。

特定の行に追加する代わりに、すべての行に追加します。私が考えることができる唯一のことは、私の WHERE 条件が間違っているということですが、それを理解できないようです。新鮮な目が必要なだけかもしれませんし、完全に間違った方向に向かっているのかもしれません。

また、セキュリティに関する具体的な指示、より良い方法などは非常に役立ちます。私はその場で PHP を学んでおり、救いの手を差し伸べることができます。:)

<?php

        $query = "SELECT * FROM client_information"; 

        $result = mysql_query($query) or die(mysql_error());


        while($row = mysql_fetch_array($result)){ 

        $which_ad = $row['ID'];?>

            <b>Name:</b> <? echo $row['billing_name']; ?> <br>
            <b>Job Type:</b> <? echo $row['job_type']; ?> <br>
            <b>Size:</b> <? echo $row['size']; ?> <br>
            <b>Text:</b> <? echo $row['text']; ?> <br>
            <b>Notes:</b> <? echo $notes; ?> <br>

            <br><br>

        <form action="small_update.php" method="POST">
        <strong>Email Message:</strong><br>
        <textarea rows="8" cols="60" name="email_message"></textarea>        
        <input type="submit" name="submit" value="Submit"></form>


<?
$email_message = htmlspecialchars ("{$_POST['email_message']}", ENT_QUOTES);


if (mysql_errno() != 0) {
die(mysql_error());
}

mysql_query(
"UPDATE client_information
SET email_message='$email_message'

WHERE ID='$which_ad'"
);


if (mysql_errno() != 0) {
die(mysql_error());
}

    }

?>
4

1 に答える 1

0

フォームでIDを指定しないでください。

<form action="small_update.php" method="POST">
    <strong>Email Message:</strong><br>
    <textarea rows="8" cols="60" name="email_message"></textarea>
    <input type="hidden" name="id" value="<?php echo $which_ad; ?>">  
    <input type="submit" name="submit" value="Submit">
</form>

また、送信されたIDを確認する必要があります。

"UPDATE client_information
SET email_message='$email_message'

WHERE ID='$_POST['id']'"

もちろん、他の誰もが言っているように、あなたはこのような攻撃に対して広くオープンです。入力をサニタイズするには、mysqliまたはpdoを調べる必要があります...

また、検査時に、ループ内の投稿データを評価しています。そうしないでください。ページ上で他のすべてが処理される前に、評価を行ってください...

<?php
if($_POST)
{
    //run processing here
}

// do your fetch code here and display the forms...
于 2012-11-06T01:39:08.317 に答える