Php 如何在jQueryAjax中动态创建url?

Php 如何在jQueryAjax中动态创建url?,php,jquery,ajax,url,post,Php,Jquery,Ajax,Url,Post,我有一个重置密码系统在PHP。 首先,忘记密码.php向客户发送一封电子邮件,其中包含重置密码的链接。 此密码由客户的电子邮件和用于重置密码的唯一密钥代码组成 此电子邮件类似于: 请单击以下链接重置密码:…/resetpassword.php?email=pm。chaumien@me.com&代码=5e1b876bb1e36 在这一页上。。。您有一个表单,其中有两个框用于输入新密码 <?php include 'main.php'; // Output message $email=$_G

我有一个重置密码系统在PHP。 首先,忘记密码.php向客户发送一封电子邮件,其中包含重置密码的链接。 此密码由客户的电子邮件和用于重置密码的唯一密钥代码组成

此电子邮件类似于:

请单击以下链接重置密码:…/resetpassword.php?email=pm。chaumien@me.com&代码=5e1b876bb1e36

在这一页上。。。您有一个表单,其中有两个框用于输入新密码

<?php
include 'main.php';
// Output message
$email=$_GET['email'];
$code=$_GET['code'];
$msg = '';
// Now we check if the data from the login form was submitted, isset() will check if the data exists.
if (isset($_GET['email'], $_GET['code']) && !empty($_GET['code'])) {
    // Prepare our SQL, preparing the SQL statement will prevent SQL injection.
    $stmt = $pdo->prepare('SELECT * FROM accounts WHERE email = ? AND reset = ?');
    $stmt->execute([$_GET['email'], $_GET['code']]);
    $account = $stmt->fetch(PDO::FETCH_ASSOC);
    // If the account exists with the email and code
    if ($account) {
        if (isset($_POST['npassword'], $_POST['cpassword'])) {
            if (strlen($_POST['npassword']) > 20 || strlen($_POST['npassword']) < 5) {
                $msg = 'Password must be between 5 and 20 characters long!';
            } else if ($_POST['npassword'] != $_POST['cpassword']) {
                $msg = 'Passwords must match!';
            } else {
                $stmt = $pdo->prepare('UPDATE accounts SET password = ?, reset = "" WHERE email = ?');
                // We do not want to expose passwords in our database, so hash the password and use password_verify when a user logs in.
                $password = password_hash($_POST['npassword'], PASSWORD_DEFAULT);
                $stmt->execute([$password, $_GET['email']]);
                $msg = 'Password has been reset! You can now <a href="../index-2.html">login</a>!';
            }
        }
    } else {
        die('Incorrect email and/or code!');
    }
} else {
    die('Please provide the email and code!');
}
?>

<!DOCTYPE html>
<html lang="en">

<head>  
</head>

<body id="register_bg">

    <nav id="menu" class="fake_menu"></nav>

    <div id="preloader">
        <div data-loader="circle-side"></div>
    </div>
    <!-- End Preload -->

<div class="rsvp-form" id="login">
        <aside>
            <figure>
                <a href="../index-2.html"><img src="../img/logoBlack.png" width="64" height="64" data-retina="true" alt="" class="logo_sticky"></a>
            </figure>
           <?php echo 'email='.$email.'&'.'code='.$code?>


        <form action="resetpassword.php?email=<?=$_GET['email']?>&code=<?=$_GET['code']?" method="post">
                <div class="form-group">
                    <label>Your password</label>
                    <input class="form-control" type="password" name="npassword" id="npassword">
                    <i class="icon_lock_alt"></i>
                </div>
                <div class="form-group">
                    <label>Confirm password</label>
                    <input class="form-control" type="password" name="cpassword" id="cpassword">
                    <i class="icon_lock_alt"></i>
                </div>

          <!-- Do Not Remove! -->
          <p class="error"></p>
          <p class="message"></p>
          <!-- Do Not Remove! Ends! -->

                    <div id="pass-info" class="clearfix"></div>
                    <div class="text-right"><button type="submit" class="btn_1 rounded full-width add_top_30">Reset Password</button></div>

            </form>


<!-- COMMON SCRIPTS -->
    <script src="../js/jquery-2.2.4.min.js"></script>
    <script src="../js/common_scripts.js"></script>
    <script src="../js/main.js"></script>
    <script src="../assets/validate.js"></script>
    <script src="../assets/formreset.js"></script>



    <!-- SPECIFIC SCRIPTS -->
    <script src="../assets/pw_strenghtreset.js"></script>


</body>

我们需要比“它不工作”更多的信息。您是否在控制台中看到任何错误,是否收到服务器的响应?@EternalHour抱歉,我把我所有的jquery。。我认为问题出在url上……如果您认为这是问题所在,您需要描述单击url时发生的情况。@EternalHour当我单击“提交”按钮时。。。。p.message显示“成功,密码已更改”,但数据库中的密码未更改…@EternalHour这是我重置密码的php代码我们需要的信息不仅仅是“它不工作”。您在控制台中看到任何错误,是否收到服务器的响应?@EternalHour抱歉,我将所有jquery。。我认为问题出在url上……如果您认为这是问题所在,您需要描述单击url时发生的情况。@EternalHour当我单击“提交”按钮时。。。。p.消息显示“成功,密码已更改”,但数据库中的密码未更改…@EternalHour这是我重置密码的php代码
$('.rsvp-form form').submit(function(event) {

  var $password = $(this).find('input[id="npassword"]');
  var $password1 = $(this).find('input[id="cpassword"]');



  $('.rsvp-form p.error').show();
  $('input[id="npassword"],input[id="cpassword"]').removeClass('error');



    if ($password.val() === '') {
    $('.rsvp-form p.error').addClass('active').html('<i class="fa fa-exclamation"></i> Veuillez saisir un mot de passe, svp !');
    $password.addClass('error').focus();
    return false;
  }

    if ($password1.val() === '') {
    $('.rsvp-form p.error').addClass('active').html('<i class="fa fa-exclamation"></i> Veuillez saisir un mot de passe, svp !');
    $password1.addClass('error').focus();
    return false;
  }


    if ($password1.val() != $password.val()) {
    $('.rsvp-form p.error').addClass('active').html('<i class="fa fa-exclamation"></i> les mots de passe ne correspondent pas !');
    $password1.addClass('error').focus();
    return false;
  }     

  if (request) {
    request.abort();
  }

  var $form = $(this);
  var $inputs = $form.find('input, button, textarea');
  var serializedData = $form.serialize();

  $inputs.prop('disabled', true);

  request = $.ajax({
    url: 'resetpassword.php?email=<?php echo $email; ?>&code=<?php echo $code; ?>',
    type: 'post',
    data: serializedData
  });

  request.done(function (response, textStatus, jqXHR){
    $('.rsvp-form p.error').hide();
    $('.rsvp-form p.message').html('success, password was changed').fadeOut(10000);
    $('.rsvp-form form').find('input[type=text], textarea, select').val('');
  });

  request.fail(function (jqXHR, textStatus, errorThrown){
    console.error(
      'The following error occured: '+
      textStatus, errorThrown
    );
  });

  request.always(function () {
    $inputs.prop('disabled', false);
  });

  event.preventDefault();

});

});