第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Ajax 提交驗(yàn)證成功響應(yīng)后不執(zhí)行任何操作

Ajax 提交驗(yàn)證成功響應(yīng)后不執(zhí)行任何操作

PHP
侃侃爾雅 2023-07-01 09:40:56
我想在提交按鈕驗(yàn)證后提交表單。驗(yàn)證更正并完成后,錯(cuò)誤和警告消失,但此腳本不執(zhí)行任何操作。我單擊提交按鈕,它只是沒(méi)有響應(yīng),也沒(méi)有將任何數(shù)據(jù)插入數(shù)據(jù)庫(kù)。順便說(shuō)一下,我在每個(gè)單獨(dú)的 div 元素中顯示了每個(gè)輸入驗(yàn)證,所以我也不想破壞這種風(fēng)格。<script type="text/javascript">    $(document).ready(function(){               $('#submit').click(function(event){            event.preventDefault();                     var fullname = $("#fullname").val();            var username = $("#username").val();            var email = $("#email").val();            var password = $("#password").val();                        $.ajax({                url: 'registercontrol.php',                method: 'POST',                data: {fullname:fullname},                success:function(response){                                     $("#vfullname").html(response);                                 }            });            $.ajax({                url: 'registercontrol.php',                method: 'POST',                data: {username:username},                success:function(response){                                     $("#vusername").html(response);                                 }            });            $.ajax({                url: 'registercontrol.php',                method: 'POST',                data: {email:email},                success:function(response){                                     $("#vemail").html(response);                                    }            });            $.ajax({                url: 'registercontrol.php',                method: 'POST',                data: {password:password},                success:function(response){                                     $("#vpassword").html(response);                                 }            });                             });    });</script>
查看完整描述

1 回答

?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

值得注意的一件事是您可以優(yōu)化 AJAX 功能。絕對(duì)沒(méi)有理由發(fā)出那么多 AJAX 請(qǐng)求。您可以在一個(gè) AJAX 請(qǐng)求中發(fā)送所有數(shù)據(jù)并完成所有成功功能。


另一件需要注意的事情是,如果 post 變量存在,您的 PHP 代碼將執(zhí)行數(shù)據(jù)庫(kù)邏輯submit?,F(xiàn)在您根本不通過(guò) AJAX 函數(shù)解析它。您沒(méi)有使用帶有提交的序列化方法,而是解析非常具體的數(shù)據(jù),通過(guò)指定每個(gè)元素值手動(dòng)獲取。


您可以做的就是解析submit為另一個(gè)數(shù)據(jù)變量。我冒昧地根據(jù)這個(gè)想法優(yōu)化了您的 AJAX 代碼。


jQuery AJAX 示例:


$(document).ready(function() {       

    $('#submit').click(function(event) {

        event.preventDefault();

        var fullname = $("#fullname").val();

        var username = $("#username").val();

        var email = $("#email").val();

        var password = $("#password").val();

        var submit = "1";

        

        $.ajax({

            url: 'registercontrol.php',

            method: 'POST',

            data: {

                fullname : fullname,

                username : username,

                email : email,

                password : password,

                submit : submit

            },

            success:function(response){                 

                $("#vfullname").html(response);

                $("#vusername").html(response);

                $("#vemail").html(response);

                $("#vpassword").html(response);  

            }

        });                     

    });

});

現(xiàn)在您肯定會(huì)有一個(gè)提交POST變量,它將輸入if()數(shù)據(jù)庫(kù)插入的語(yǔ)句。


您可以做的另一件事是更具體地檢查是否應(yīng)該輸入允許數(shù)據(jù)庫(kù)插入的語(yǔ)句?,F(xiàn)在它只圍繞POST變量submit。沒(méi)有其他邏輯。你可能想重新考慮一下。創(chuàng)建變量,F(xiàn)ALSE當(dāng)驗(yàn)證檢查一切正常時(shí),將它們?cè)O(shè)置為 true。相反,圍繞它構(gòu)建數(shù)據(jù)庫(kù)插入if()語(yǔ)句,因?yàn)檫@比提交變量是否存在更相關(guān)。


另一件事是您md5()對(duì)密碼使用哈希函數(shù)。這是非常不安全的。參考這篇文章。


您也沒(méi)有在告訴用戶單擊激活鏈接的行上正確連接 PHP 變量。你連接super globals得很好,但沒(méi)有連接 PHP 變量。


話雖如此,除了我指出的之外,沒(méi)有什么本質(zhì)上的錯(cuò)誤。


這是你的 PHP 代碼:


<?php

if( isset( $_POST['fullname'] ) ) {

    //fullname validation

    $fullname = $_POST['fullname'];


    if( empty( $_POST['fullname'] ) ) {

        $warningfn = "Please fill this field";

        echo '<style type="text/css"> #fullname {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningfn.'</p>';

    } else if( !$user->isValidFullname($fullname) ) {

        $infofn = 'Your name must be alphabetical characters';

        echo '<style type="text/css"> #fullname {border-color: #36b9cc !important;} </style>';

        echo '<p class="p-3 text-info">'.$infofn.'</p>';

    } else {

        echo '<style type="text/css"> #fullname {border-color: #1cc88a !important;} </style>';

    }   

}


if( isset( $_POST['username'] ) ) {

    //username validation

    $username = $_POST['username'];

    

    if( empty( $_POST['username'] ) ) {

        $warningun = "Please fill this field";

        echo '<style type="text/css"> #username {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningun.'</p>';

    } else if( !$user->isValidUsername($username) ) {

        $infoun = 'Your username must be at least 3 alphanumeric characters';

        echo '<style type="text/css"> #username {border-color: #36b9cc !important;} </style>';

        echo '<p class="p-3 text-info">'.$infoun.'</p>';

    } else if ( !$user->isUsernameAlreadyinUse($username) ) {

        $errorun = 'This username already in use';

        echo '<style type="text/css"> #username {border-color: #e74a3b !important;} </style>';

        echo '<p class="p-3 text-danger">'.$errorun.'</p>';

    } else {

        echo '<style type="text/css"> #username {border-color: #1cc88a !important;} </style>';

    }   

}


if( isset( $_POST['email'] ) ) {

    //email validation

    $email = htmlspecialchars_decode( $_POST['email'], ENT_QUOTES );

    

    if( empty( $_POST['email'] ) ) {

        $warningm = "Please fill this field";

        echo '<style type="text/css"> #email {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningm.'</p>';

    } else if( !$user->isValidEmail($email) ) {

        $warningm = 'Please enter a valid email address';

        echo '<style type="text/css"> #email {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningm.'</p>';

    } else if( !$user->isEmailAlreadyinUse($email) ) {

        $errorm = 'This email already in use';

        echo '<style type="text/css"> #email {border-color: #e74a3b !important;} </style>';

        echo '<p class="p-3 text-danger">'.$errorm.'</p>';

    } else {

        echo '<style type="text/css"> #email {border-color: #1cc88a !important;} </style>';

    }

}


if( isset( $_POST['password'] ) ) {

    $password= $_POST['password'];


    if( empty( $_POST['password'] ) ) {

        $warningpw = "Please fill this field";

        echo '<style type="text/css"> #password {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningpw.'</p>';

    } else if ( !$user->isValidPassword($password) ) {

        $warningpw = 'Your password must be at least 6 characters long';

        echo '<style type="text/css"> #password {border-color: #f6c23e !important;} </style>';

        echo '<p class="p-3 text-warning">'.$warningpw.'</p>';      

    } else {

        echo '<style type="text/css"> #password {border-color: #1cc88a !important;} </style>';

    }   

}


if( isset( $_POST['gender'] ) ) {

    $gender = $_POST['gender'];

    if( !in_array($gender, ['Male','Female','Other']) ) {

        $gender = 'Other';

    }

} else {

    $gender = 'Other';

}


if( isset( $_POST['submit'] ) ) {

    //hash the password

    $hashedpassword = password_hash( $password, PASSWORD_BCRYPT );


    //create the activasion code

    // this is highly insecure, see: https://www.php.net/manual/en/function.md5.php

    $activasion = md5( uniqid( rand(),true ) );


    try {

        //insert into database with a prepared statement

        $stmt = $db->prepare('INSERT INTO members (fullname,username,password,email,gender,active) VALUES (:fullname, :username, :password, :email, :gender, :active)');

        $stmt->execute(array(

            ':fullname' => $fullname,

            ':username' => $username,

            ':password' => $hashedpassword,

            ':email' => $email,

            ':gender' => $gender,

            ':active' => $activasion

        ));

        $id = $db->lastInsertId('memberID');


        //send email

        $to = $_POST['email'];

        $subject = "Confirm Your Account";

        $body = "<p>Thank you for registering on the demo site.</p>

                 <p>Hello ".$fullname.", please click this link to activate your account: <a href='".DIR."activate.php?x=".$id."&y=".$activasion."'>".DIR."activate.php?x=".$id."&y=".$activasion."</a></p>";


        $mail = new Mail();

        $mail->setFrom(SITEEMAIL);

        $mail->addAddress($to);

        $mail->subject($subject);

        $mail->body($body);

        $mail->send();


        //redirect to index page

        header('Location: register.php?action=joined');

        exit;


      //else catch the exception and show the error.

    } catch(PDOException $e) {

        $error[] = $e->getMessage();

    }

}

?>

我相信這$someVar->isValid()指的是有效的東西,因?yàn)槲覍?duì)此沒(méi)有其他見(jiàn)解。


如果您現(xiàn)在在數(shù)據(jù)庫(kù)插入之外遇到更多錯(cuò)誤,則問(wèn)題出在其他地方。要么你沒(méi)有遵循你的表結(jié)構(gòu)邏輯(拼寫(xiě)錯(cuò)誤、無(wú)效的數(shù)據(jù)格式等)


查看完整回答
反對(duì) 回復(fù) 2023-07-01
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)