-1

私はphpとjavascriptを初めて使用します。新しいユーザーアカウントを作成するために、最初のphpファイルに1つのモーダルダイアログオープンスクリプトを記述しました。モーダルウィンドウで有効な入力を行った後、postメソッドで情報を2番目のphpページに送信して挿入します。データベース内のデータ。

ここで問題が発生します.2番目のphpページには、電子メールアドレスがデータベースにすでに存在するかどうかを確認してエラーを表示する方法があります。それ以外の場合は、データをデータベースに挿入して3番目のphpページにリダイレクトします。

ただし、同じロジックを記述できません.2ページ目でメールチェックメソッドがtrueを返し、3ページ目にデータリダイレクトを正常に挿入した後にエラーを表示する場合のロジックを記述するようにガイドしてください。

以下のコードスニペットを見つけてください

2番目のphpと3番目のphpは同じフォルダーにあります。head()部分が機能していないため、2番目のページの検証でもエラーを表示する必要があります。最初のphpコードのほとんどはjavascriptとhtmlフォームです。そこから私は2ページ目に投稿しています

        **1st php**

 <script>       
                $("#dialog-form").dialog({
                    autoOpen: false,
                    height: 300,
                    width: 350,
                    modal: true,
                    buttons: {
                        "Create an account": function() {
                            var bValid = true;
                            allFields.removeClass("ui-state-error");
                            bValid = bValid && checkLength(email, "email", 6, 80);
                            bValid = bValid && checkLength(password, "password", 5, 16);
                            bValid = bValid && checkLength(confirmpassword, "confirmpassword", 3, 16);
                            bValid = bValid && checkRegexp(email, .....);
                            bValid = bValid && checkRegexp(password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9");
                            bValid = bValid && IsEqual(password, confirmpassword, "password & confirmpassword are not equal");
                            if (bValid) {
                                $.ajax({
                                    type: "POST",
                                    url: "./create_account.php?act=create",
                                    data: "&email=" + email.val() + "&password=" + password.val() + "&confirmpassword=" + confirmpassword.val(),
                                    success: function(data) {

                                    }
                                });
                                $(this).dialog("close");
                            }
                        },
                        Cancel: function() {
                            $(this).dialog("close");
                        }
                    },
                    close: function() {
                        allFields.val("").removeClass("ui-state-error");
                    }
                });
                $("#create-user")
                        .button()
                        .click(function() {
                    $("#dialog-form").dialog("open");
                });
            });
        </script>
        <div id="dialog-form" title="Create new user">
            <p class="validateTips">All form fields are required.</p>
            <form>
                <fieldset>
                    <label for="email">Email</label>
                    <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />
                    <label for="password">Password</label>
                    <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
                    <label for="confirmpassword">confirm password</label>
                    <input type="password" name="confirmpassword" id="confirmpassword" class="text ui-widget-content ui-corner-all" />
                </fieldset>
            </form>
        </div>


    **2nd php**

    <?php

    $action = $_GET['act'];

    if(!empty($_POST['email'])&&($_POST['password'])&&($_POST['confirmpassword'])) {


        $email_address = tep_db_prepare_input($HTTP_POST_VARS['email']);
        $password = tep_db_prepare_input($HTTP_POST_VARS['password']);
        $confirmpassword = tep_db_prepare_input($HTTP_POST_VARS['confirmpassword']);

        $error = false;

      {
            $db = new mysql("root", "", "modal_db", "localhost");
            $email_query_status ="select count(*) as total from " . CUSTOMERS . " where customers_email_address = $email_address ;
            $check_email = mysql($email_query_status );
            if ($check_email['total'] > 0) {
                $error = true;
            }
        }
        if ($error == false) {
            $db->query("INSERT INTO user_info SET customers_email_address ='$email_address', password='$pword'");
            header('Location: 3rd.php');


        }
    }
    ?>




        Thanks in advance, 

        Debasis
4

1 に答える 1

0

「メールアドレスがデータベースにすでに存在するかどうかを確認してから、エラーを表示してください。そうでない場合は、データをデータベースに挿入して、3番目のphpページにリダイレクトしてください。」

  • "SELECT * FROM table WHERE email =:email";
  • 結果がtrueの場合、電子メールはすでに存在し、エラーメッセージを作成できます。
  • 結果がfalseの場合は、挿入します。
  • その後、使用することができます

    header( "場所:index.php");

PHPでリダイレクトします。

于 2013-03-23T19:01:36.327 に答える