2

私のコードは問題ないと思います。しかし、フォームを送信した後、データベースに INSERT を実行できません。誰でも私を助けることができますか?

私はそれをアラートOKで試しましたが、データベースにINSERT値が見つかりません

ほとんどの場合、ボタンをクリックした後、再びフォームに戻り、エラーが発生してもアラートは表示されません。

これは私のHTMLです

<form>
    <label for="basic">Login Name:</label>
    <input type="text" name="loginID" id="loginID" value="" data-mini="true" /></br >
    <label for="basic">Login Password:</label>
    <input type="password" name="loginPW" id="loginPW" value="" data-mini="true" /></br >
    <input type="submit" value="Submit ">
</form>

これは私のjsです

$(document).ready(function()
{
    $('form').submit(function(){

        $.ajax({
            type: 'POST',
            data: 
            {
                    loginID: $("#loginID").val(),
                    loginPW: $("#loginPW").val()
            },
            url: 'http://mydomain.com/create.php',
            success: function(data){
                alert('Your comment was successfully added');
            },
            error: function(){
                alert('There was an error adding your comment');
            }
        });

        return false;
    });
});

これは私のPHPです

<?php

include('mysqlConfig.php');

$id = mysql_real_escape_string($_POST["loginID"]);
$pw = mysql_real_escape_string($_POST["loginPW"]);

$sql="INSERT INTO tbl_user (user_name, password)
VALUES
($id,$pw)";

if (!mysql_query($sql,$link))
{
    die('Error: ' . mysql_error());
}
else
{    
    echo "Comment added";
}

mysql_close($link);

?>
4

1 に答える 1

0

実際には PDO (または mysqli) とプリペアド ステートメントに切り替える必要がありますが、ここでの問題は、変数を引用符で囲んでいないことと、変数が文字列であるため、引用符で囲む必要があることです。

$sql="INSERT INTO tbl_user (user_name, password)
      VALUES
        ('$id','$pw')";

また、パスワードをハッシュしてソルトし、プレーン テキストまたは暗号化して保存しないでください。

于 2013-03-14T00:50:03.750 に答える