0

index.php次のような 2 番目のページに投稿するファイルにフォームがあります。

    <form method="post" id="signupform" name="signupform" action="functions.php">
        <label for="user_id">Username:</label><span id="asterix">*</span> <br>
        <input name="user_id" type="text" id="user_id" required><br><br>
        <label for="new_password">Password:</label><span id="asterix">*</span> <br>
        <input name="new_password" type="password" id="new_password" required><br><br>
        <label for="confirm_password">Confirm password:</label><span id="asterix">*</span> <br>
        <input name="confirm_password" id="confirm_password" type="password" required><br><br>
        <label for="new_email">Email:</label><span id="asterix">*</span> <br>
        <input name="new_email" id="new_email" type="email" required>
        <input hidden="hidden" name="action" value="signup">
        <br><br>
        <input id="createaccount" type="submit" value="Create account">
    </form>

送信は、次のsubmitHandlerように jQuery を介して行われます。

                submitHandler: function(signupform) {
                $(signupform).ajaxSubmit({

                    target:'#result',
                    success: function(){
                        $("#result").css("display","block");
                        $('#box').animate({'top':'-800px'},500,function(){
                            $('#overlay').fadeOut('fast');
                            $('#loginmain').hide();
                        });

                    }
                })
            }

結果は、次のように同じページの div に表示されます。

<div id="result" class="success_message" style="display: none"></div>

2 ページ目functions.phpには、div に表示する必要があるものがあります。

問題は、データベース操作を行うために db.php という 3 番目のファイルを作成したことです。

    if (isset($_POST['action']) && $_POST['action'] == "signup") {
    $user_id      = mysql_real_escape_string($_POST["user_id"]);
    $new_password = md5(mysql_real_escape_string($_POST["new_password"]));
    $new_email    = mysql_real_escape_string($_POST["new_email"]);

    $create_account = "INSERT INTO users(username, email, password ) VALUES ('" . $user_id . "','" . $new_password . "','" . $new_email . "')";
    if($create_account){echo "done";}else echo "failed";
    if(mysqli_query($str, $create_account)){
        echo "successful insert";
    }
 }

index.php に db.php を含めましたが、クエリは実行されません。実際には、ステートメントの後postに を配置すると表示されないため、フォームが正しくないように見えますが、によって、物事は機能しますが、は正しく動作しません。echo "test"ifaction="functions.php"action=""submithandler

4

2 に答える 2

2

宣言type=hiddenの代わりに次のように指定しないhidden=hiddenでください。input

<input type="hidden" name="action" value="signup">

それ以外の

<input hidden="hidden" name="action" value="signup">

ifステートメントの前に、php スクリプトで投稿された値を確認しましたか?

于 2013-07-03T14:37:17.010 に答える
0

これらの関数をそこでも機能させるには、functions.php にも db.php を含める必要があります。

于 2013-07-03T19:27:43.650 に答える