1

フォームハンドリングはこちら

if(isset($_POST['clear'])) {
    mysql_query("DELETE FROM md5dictionary");
}

if(isset($_POST['submit'])) {
    if(strlen($_POST['keywords']) < 1 || ctype_space($_POST['keywords']) == true) {
        $errors['blank'] = "<span class='error'> Please insert a word </span>";
    } else {
        $newword = $_POST['keywords'];
        $db_checkExist = mysql_query('SELECT * FROM md5dictionary WHERE keywords="' . $newword . '"');
        echo mysql_num_rows($db_checkExist) . "<br />";
        if(mysql_num_rows($db_checkExist) > 0) {
            echo "outside else " . mysql_num_rows($db_checkExist);
            $finalResult = "<span class='error'> Failed!!! </span>";
        } else {
            echo "inside else " . mysql_num_rows($db_checkExist);
            $md51 = md5($newword);
            $md52 = md5($md51);
            mysql_query('INSERT INTO md5dictionary(keywords, mdFive, mdFive2) VALUES ("' . $newword . '", "' . $md51 . '", "' . $md52 . '")');
            $finalResult = "<span class='success'> Thank you! Wanna add another one? </span>";
        }
    }
}

フォームはこちら

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <fieldset> Input Form </fieldset>
    <label for="keywords"> Input new Keywords into dictionary: </label>
     <?php echo $finalResult; ?>
     <?php echo $errors['blank']; ?>
        <input name="keywords" type="text" />
        <input name="submit" type="submit" value="Add!!" />
        <input name="clear" type="submit" value="Clear Database" />
</form>
<h1> Datas: </h1>
<?php
    $result = mysql_query("SELECT * FROM md5dictionary");
    $rows = mysql_num_rows($result);
    for ($i = 0; $i < $rows; ++$i) {
        echo "Data " . $i . "<br />";
        echo "keywords: " . mysql_result($result, $i, "keywords") . "<br />";
        echo "md5: " . mysql_result($result, $i, "mdFive") . "<br />";
        echo "md5_2: " . mysql_result($result, $i, "mdFive2") . "<br />";
    }
?>

結果は次のとおりです。 http://md5dictionary.hoangminhdat.com

質問: なぜ「失敗しました!」と言い続けるのですか? データベースに情報が正常に挿入されたのはなぜですか? スペルミスがあってはならない

私のばかげた質問に答えるのに時間がかかることはわかっていますが、私はそれを自分で説明することはできません!!

4

2 に答える 2

2

あなたが提供したウェブリンクをテストしました。

単語を挿入すると、'inside else' が表示され、挿入されたように見えます。

この単語をもう一度すばやく入力すると、「失敗」します。

問題はないと思いますが、これはあなたが達成したいことではありませんか?それ以外の場合は、質問を再考し、何が機能していないか、いつ機能しないかを絞り込んでください。

編集: 成功したメッセージが必要な場合は、別のメッセージが必要です:

echo $finalResult;

$finalResult を定義した後。

于 2012-05-12T16:41:44.533 に答える
0

挿入して「失敗」すると言うときの意味がわかりません。「INSERT INTO md5dictionary ...」が実行され、「 Failed!!! 」コードが表示されているということですか?

その場合は、フォーム フローを調査して修正することをお勧めします。これは、フォーム自体を呼び出す可能性が最も高く、フォームが 2 回実行され、2 回目は null 値を持つ可能性が高いためです。

これが私が思いついたものです。

良い一日を、S.

于 2012-05-12T16:42:25.983 に答える