0

次のスクリプトを使用して、Web サイトのメッセージを更新するフォームを処理しています。問題は、何らかの理由で行を更新するのではなく、行をクリアしていることです。私はPhpmyadminからクエリをコピーしたので、それが正しいことを知っています。また、投稿された値をエコーし​​ようとしましたが、それらもすべて正常にエコーアウトされましたが、何らかの理由でフォームで送信をクリックすると、更新する代わりに記録します。

<?php
    include("connectmysqli.php");

    if (isset($_POST['OnOff'])) {$OnOff = $_POST['OnOff'];}else {$OnOff = '';}
    if (isset($_POST['title'])) {$title = $_POST['title'];}else {$title = '';}
    if (isset($_POST['message'])) {$message = $_POST['message'];}else {$message = '';}

    $stmt = $db->prepare("UPDATE `itsnb_chronoforms_data_urgentform` SET  `title` =  '$title',`message` =  '$message',`OnOff` =  '$OnOff' WHERE `cf_id` =1;");
    if (!$stmt) trigger_error($db->error);
    $stmt->execute(); 

    echo 'Message Updated !';
    echo '<p><a href="index.php?&key='.$key.'">Back To Main Menu</a></p>';
    ?> 

これはテーブルです:

ここに画像の説明を入力

4

1 に答える 1

1

生成されたクエリをエコーし​​ましたか?

これが起こる可能性があると私が見る方法は正確にあります:

  1. フォームの入力名が、3 つの if ステートメントでチェックした post キーと一致しません
  2. method="post" でフォームを送信していない

また、3 つの投稿フィールドがすべて設定されて有効な場合にのみ、更新クエリを実行する必要があります。タイトルやメッセージなどは空白/空であってはならず、その onOff 変数には「on」または「off」を含める必要があります。それ以外の場合は、エラー メッセージをエコーし​​て、ユーザーが入力の何が問題なのかを知ることができます。

于 2013-06-24T09:05:08.977 に答える