繁体   English   中英

我的 Ajax 返回成功但未更新 mysql 数据库

[英]My Ajax is returning success but not updating mysql database

每当我提交表单时,我的 session[''playerPlan] 总是返回之前用户的计划。 所以我决定在提交后更新用户的计划。 到目前为止一切顺利,我收到了成功消息,但 ajax 没有更新数据库。 这是我的回显查询(对于用户号 115): UPDATE KingOfQuiz SET plan = '2' WHERE id = 115 LIMIT 1 我现在不是在寻找 SQL 注入,因为这只是在 localhost 上进行测试。

表格(不是问题,而是身份证):

<form action="actionSignUp.php" method="post" id="signupForm" class="signupForm">
              <h2>Signup</h2>
                <input type="hidden" name="loginActive" id="loginActive" value="0">
                <br>
            <div class="form-group row">
            <label for="username" class="col-lg-16 col-form-label">Username:</label>
            <div class="col-lg-8">
            <input type="text" class="form-control signupInput" name="username" id="username" aria-describedby="username" autocomplete="username" autofocus required>
            </div>
            <p><span class="error"><?php echo $usernameError;?></span><p>
                </div>
          <div class="form-group row">
            <label for="password" class="col-lg-16 col-form-label">Password:</label>
            <div class="col-lg-8">
            <input type="password" class="form-control signupInput" id="Password" name="password" autocomplete="current-password" required>
              </div>
              <p><span class="error"><?php echo $passwordError;?></span><p>
            </div>
            
            <h4>Account Type <i class="far fa-question-circle info" data-toggle="tooltip" data-placement="right" title="Whenever you have all free accounts checked, payment method should be hidden, but if not then click on any paid account and then click back!" height="16px"></i></h4>
            <p>Visit <a href="pricing.php">Plan</a> for pricing details.</p>
              <div class="input-group-prepend row">
                  <input type="button" class="dropdown-item col-md-4 active dropdownI plan" value="Player: Free Account $0.00/Mo" class="FA playAccount" id="dfreePlayerAccount" name="fa">
                  <input type="button" class="dropdown-item col-md-4 dropdownI plan" value="Player: Pro Account $5.99/Mo" class="FA" id="dproPlayerAccount" name="pa">
                  <input class="dropdown-item col-md-4 dropdownI plan" value="Player: Premium Account $9.99/Mo" class="FA" id="dpremiumPlayerAccount" name="pra">
              </div>
                <br>
              <input type="radio" id="freePlayerAccount" class="free readonly" name="account" value="1" checked>
              <label for="freePlayerAccount">Player: Free Account $0.00/Mo</label><br>
              <input type="radio" id="proPlayerAccount" class="paid readonly" name="account" value="2">
              <label for="proPlayerAccount">Player: Pro Account $5.99/Mo</label><br>
              <input type="radio" id="premiumPlayerAccount" class="paid readonly" name="account" value="3">
              <label for="premiumPlayerAccount">Player: Premium Account $9.99/Mo</label><br>
              <hr>
                 <h5>Optional:</h5>
                 <div class="row">
                  <input type="button" class="dropdown-item col-sm-6 CA" value="Creator: Pro Account $9.99/Mo" name="pca" id="dproCreatorAccount">
                  <input type="button" class="dropdown-item col-sm-6 CA" value="Creator: Premium Account $14.99/Mo" id="dpremiumCreatorAccount" name="prca">
                  </div>
            <br>
              <input type="radio" id="creatorProAccount" class="paid creatorAccount readonly" name="creatorAccount" value="5">
              <label for="creatorProAccount">Creator: Pro Account $9.99/Mo</label><br>
              <input type="radio" id="creatorPremiumAccount" class="paid creatorAccount readonly" name="creatorAccount" value="6">
              <label for="creatorPremiumAccount">Creator: Premium Account $14.99/Mo</label><br>
                <hr>
            <div class="hiddenPaymentMethod"> <h5>Payment Method</h5>
              <input type="radio" id="Paypal" name="payment" value="Paypal" class="payment">
              <label for="Paypal">Paypal</label><br>
              <input type="radio" id="creditCard" name="payment" value="CreditCard" class="payment">
              <label for="creditCard">Credit Card</label><br>
              <input type="text" style="display:none;" name="creditCardNumber" id="creditCardNumber" placeholder="Card Number">
              <input type="radio" id="debitCard" name="payment" value="DebitCard" class="payment">
          <label for="debitCard">Debit Card</label>
               <input type="text" style="display:none;" name="debitCardNumber" id="debitCardNumber" placeholder="Card Number"> 
                <br></div>
                <br>
            <input type="checkbox" id="termsAndConditions" class="conditions" name="termsandconditions" value="0">
            <label for="termsAndConditions"> I have read and agreed to the Terms and Conditions <span data-toggle="modal" data-target="#exampleModal"><i class="far fa-question-circle questionMark"></i></span></label>
            <p id="errors"></p>
            <p id="tacError" style="color:red"></p>
            <input type="submit" class="btn btn-primary" name="signupButton" id="signUpButton" value="Submit">
        </form> 

我的 ajax (第二个 ajax 是更新的):

$("#signUpButton").click(function() { 
                    $.ajax({
                        type: "POST",
                        url: "actionSignUp.php",
                        data: "username=" + $("#username").val() + "&password=" + $("#Password").val() + "&termsandconditions=" + $("#termsAndConditions").val() + "&fa=" + $("#dfreePlayerAccount").val() + "&pa=" + $("#dproPlayerAccount").val() + "&pra=" + $("#dpremiumPlayerAccount").val() + "&pca=" + $("#dproCreatorAccount").val() + "&prca=" + $("#dpremiumCreatorAccount").val() + "&account=" + $(".playAccount").val() + "&loginActive=" + $("#loginActive").val()
                    }).done(function(result)  {
                            $("#errors").html(result);
                        }).fail(function(xhr, textStatus, errorThrown) {
                        
                            alert("Error Requesting. Please Try Again Later.");
                        
                        });

                    }); 

                $(document).ready(function(){
                  $('#signupForm').on('submit' , function(e){
                    e.preventDefault();
                    var plan = $('.playAccount').val();
                    var key = "";
                    var value = "";
                    if (plan == $("#dfreePlayerAccount").val()) {
                      key = "fa";
                      value = $("#dfreePlayerAccount").val();
                    } else if (plan == $("#dproPlayerAccount").val()) {
                      key = "pa";
                      value = $("#dproPlayerAccount").val();
                    } else if (plan == $("#dpremiumPlayerAccount").val()) {
                      key = "pra";
                      value = $("#dpremiumPlayerAccount").val();
                    }
                    var data = {
                      plan: plan
                    };
                    data[key] = value;
                    $.ajax({
                      method: "POST",
                      url: "ChangeUserPlan.php",
                      data: data
                    }).done(function(updated){
                        console.log(updated);
                    }).fail(function(xhr, textStatus, errorThrown) {
                         console.log("Error Requesting. Please Try Again Later.");
                    });
                  });
                });

更新用户 PHP:

require('signup.php');
    $link = mysqli_connect("****", "****", "Nice Try", "Nope, Not giving it");
    
     
    if(mysqli_connect_error()) {
         
         die("Couldn't connect to the database. try again later.");
         
     } 
 
      $query = "SELECT * FROM `users`";

      if($result = mysqli_query($link, $query)) {
          
          $row = mysqli_fetch_array($result);
          
    }
    $_SESSION['playerPlan'] = "1";
            if(isset($_REQUEST['fa'])) {
                $_SESSION['playerPlan'] = "1";
            }
            if(isset($_REQUEST['pa'])) {
                $_SESSION['playerPlan'] = "2";
            }
            if(isset($_REQUEST['pra'])) {
                $_SESSION['playerPlan'] = "3";
            }
   
    $playingPlan = $_SESSION['playerPlan'];
   
    if($_SERVER["REQUEST_METHOD"] == "POST") {
        echo $_SESSION['playerPlan'];
        $query = "UPDATE KingOfQuiz SET plan = '". $playingPlan."' WHERE id = ".$_SESSION['id']." LIMIT 1";
        mysqli_query($link, $query);
        echo $query;

    } else {
        echo "Sorry Try Again Later.";
    }

我的桌子有错误的名字

必须更新的表是用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM