AJAX调用php更改密码表单

AJAX调用php更改密码表单,php,ajax,passwords,Php,Ajax,Passwords,正在尝试对php进行此脚本调用。当我使密码彼此不相等时,错误会显示密码不匹配,如果我将其留空,我也会得到正确的错误消息。然而,如果我尝试正常使用它,我会得到未知错误。此代码中是否存在不匹配的操作顺序。我看不出有什么不对 <script> function changepass() { var u = _("username").value; var cp = _("currentPass").value; var np = _("newPass").value;

正在尝试对php进行此脚本调用。当我使密码彼此不相等时,错误会显示密码不匹配,如果我将其留空,我也会得到正确的错误消息。然而,如果我尝试正常使用它,我会得到未知错误。此代码中是否存在不匹配的操作顺序。我看不出有什么不对

<script>
function changepass() {
  var u = _("username").value;

  var cp = _("currentPass").value;

  var np = _("newPass").value;

  var cnp = _("confirmNewPass").value;

  if(np != cnp) {
    _("status").innerHTML = "The passwords given do not match!";
  } else if (cp === "" || np === "" || cnp === "") {
    _("status").innerHTML = "Please fill out all of the fields.";
  } else {
    _("changepassbtn").style.display = "none";
    _("status").innerHTML = 'please wait ...';
    var ajax = ajaxObj("POST", "reset_pass.php");
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
        var response = ajax.responseText;
        if(response.trim() == "success"){
            _("status").innerHTML = 'Your password change was successful!';
}       else if (response == "no_exist"){
        _("status").innerHTML = "Your current password was entered incorrectly.";
        _("changepassbtn").style.display = "initial";
}       else if(response == "pass_failed"){
        _("status").innerHTML = "Change password function failed to execute!";
        _("changepassbtn").style.display = "initial";
}       else {
        _("status").innerHTML = "An unknown error occurred";
        _("changepassbtn").style.display = "initial";

}
       }
        }
        ajax.send("u="+u+"&cp="+cp+"&np="+np+"&cnp"+cnp);
}
}
</script>

函数changepass(){
var u=uU9;(“用户名”).值;
var cp=uU9;(“当前通过”).值;
var np=U9;(“newPass”).值;
var cnp=uU9;(“confirmNewPass”).值;
如果(np!=cnp){
_(“status”).innerHTML=“给定的密码不匹配!”;
}else if(cp==“”| | np==“”| | cnp==“”){
_(“状态”).innerHTML=“请填写所有字段。”;
}否则{
_(“changepassbtn”).style.display=“无”;
_(“状态”).innerHTML='请稍候…';
var ajax=ajaxObj(“POST”、“reset_pass.php”);
ajax.onreadystatechange=函数(){
if(ajaxReturn(ajax)=true){
var response=ajax.responseText;
if(response.trim()=“success”){
_(“状态”).innerHTML='您的密码更改成功!';
}否则如果(响应=“不存在”){
_(“状态”).innerHTML=“您当前的密码输入不正确。”;
_(“changepassbtn”).style.display=“初始”;
}否则,如果(响应=“通过\u失败”){
_(“状态”).innerHTML=“更改密码功能无法执行!”;
_(“changepassbtn”).style.display=“初始”;
}否则{
_(“状态”).innerHTML=“发生未知错误”;
_(“changepassbtn”).style.display=“初始”;
}
}
}
发送(“u=“+u+”&cp=“+cp+”&np=“+np+”&cnp”+cnp);
}
}
这里是php

<?php
// AJAX CALLS THIS CODE TO EXECUTE
if(isset($_POST['cp'])) {
    include_once("php_includes/db_conx.php");
    $username = '';
    $oldpasshash = '';
    $newpasshash = '';
    $u = mysqli_real_escape_string($db_conx, $_POST['u']);
    $oldpass = $_POST["cp"];
    $newpass = $_POST["cnp"];
    $oldpasshash = md5($oldpass);
    $newpasshash = md5($newpass);
    $sql = "SELECT username, password FROM users WHERE username='$username' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row = mysqli_fetch_row($query);
    $db_username = $row["0"];
    $db_password = $row["1"];
    if($db_password != $oldpasshash){
        echo "no_exist";
        exit();
    } else {
        $sql = "UPDATE users SET password='$newpashhash' WHERE username='$db_username' LIMIT 1";
        $query = mysqli_query($db_conx, $sql);
        $sql = "SELECT password FROM users WHERE username='$db_username' LIMIT 1";
        $query = mysqli_query($db_conx, $sql);
        $row = mysqli_fetch_row($query);
        $db_newpass = $row[0];
        if($db_newpass == $newpasshash) {
        echo "success";
        exit();
        } else {
            echo "pass_failed";
            exit();
    }
}
}
?>

您需要在站点中添加jquery的ajax库,并使用下面的代码,您可以根据需要更改此代码

function checkpass() {
        var password = $("#newpassword").val();
            password = password.trim();

        var confirmpassword = $("#confirmpassword").val();
            confirmpassword = confirmpassword.trim();

        var status = false;    

        if(password !== '' && confirmpassword !== ''){
            if (password != confirmpassword) {
                $("#newpassword").css('border', '1px solid red');
                $("#confirmpassword").css('border', '1px solid red');
                $('#password_error').html('Password and Confirm Password does not match!');

            } else {       
                $("#newpassword").removeAttr('style');
                $("#confirmpassword").removeAttr('style');
                $('#password_error').html('');
                status = true;
            }
            return status;
        }
    }

    function changepass(){
        var checkin = checkpass();
        var url = 'myurl'; // change according to your need 
        if(checkin == true){
            var newpass = $("#newpassword").val();
            $.ajax({
                url: url,
                type: "POST",
                data: $("#passowrdform").serialize(),
                success: function (response){
                    //alert(response);
                    $('#old_pass').val(newpass)
                    $("#newpassword").val('');
                    $("#confirmpassword").val('');
                }, error: function(){

                }
            });
        }
        return false;
    }

谢谢,我要试试这个。我真的是新来的,我只是得到信息,因为我去。也就是说,jquery中的ajax库只是他们网站上的最新版本,或者我应该下载一个特定的文件吗?编辑:我刚刚在他们的网站上看到了ajax部分。我不知道该用哪一个。这只是我需要的.css文件吗?你应该使用最新的版本