Yazılan önce doğrulamak

2 Cevap php

Ben bu küçük kodu (benim regsitration kod parçası) var:

<?php 
 if (@$_POST['Submit'] == 'Register'){

     if (strcmp(md5($_POST['user_code']),$_SESSION['ckey']))
    { 
         die("Invalid code entered. Please enter the correct code as shown in the Image");
    } 
 } 
 ?> 

<form name="form1" id="signupForm" method="post" action="register.php" style="padding:5px;">
<div class="reg_left">Security code:</div>
<div class="reg_right"><input name="user_code" type="text" size="10"> <img src="pngimg.php" align="middle" width="100" height="40"></div>
<div><input type="submit" name="Submit" class="submit" value="<?php echo $gomb_reg;?>"></div>
</form>

Unfortunatelly this is check if code is valid after post the form data. I would like to check before posting. So i think i must use Jquery validation plugin. (btw i use Jqery to validate the other fields like email, user, password). But as im not an expert in Jqery i need help to write that php code above in Jquery.

Teşekkür ederim.

2 Cevap

Ben temel jist olacağına inanıyorum:

  • Göndermek öğe için bir işlev kanca
  • Bu JS fonksiyonu PHP script için user_code değer gönderir
  • PHP komut değerini kontrol eder ve ve çıkışlar (döner) bool (veya json)
  • Iyi bir değer döndürülür JS fonksiyonu mesajı veriyor

(Note: jQuery AJAX işlevi do not yazısının yürütülmesini durdurmak beri, sen göndererek formu durdurmak zorunda olacak, daha sonra AJAX geri arama formu gönderin.)

Look at the jQuery docs for .post or .getJSON, use those function to sent the 'user_code' to be checked.

You can keep most of your php code the same, but you'll want to check for the request header type. i'm pretty sure jquery sends the X-Requested-With : XMLHttpRequest but i'm not entirely sure and its late, so to somewhat modify your php script it would look something like this

  if (@$_POST['submit'] == 'Register'){

     if (strcmp(md5($_POST['user_code']),$_SESSION['ckey']))
     { 
           // check if the request was from an ajax call
          if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){

           //if it is an ajax request we need to send back a json encoded array
             $response = array('success' => 'true', 'message' => 'Invalid code';

             // now we encode the array and echo it back
              echo json_encode($response);

            // exit the script for safety
              exit();
          }else{

           // if the request wasn't ajax the respond business as usual

           die("Invalid code entered. Please enter the correct code as shown in the Image");
         }
    }

}

JQuery kodu gibi muhtemelen bu gibi bir şey olacaktır:

$(document).ready(function(){

// this creates an event handler on the form submit
 $('#signUpForm').submit(function(){

       // you'll need to give your user_code input an id of user_code
       var user_code = $('#user_code').val(); 

       // I like to use the jQuery $.ajax method since it gives you more controll
      $.ajax({
            // send a post request

            type : 'POST',

            // the url you'll be sending the request too

            url: 'register.php',

            // the type of data you're expecting back
            // i prefer json since its easier to work with for me

            dataType : 'json',

            // the data you want to send which would be your user_code data 
            // send this in a name/value pair

            data : 'user_code=' + user_code + '&submit=Register',

            // the success function is called when the ajax call has been
            // completed, not whether the user_code matches the $_SESSION['ckey']
            // the data variable will contain your json data
            success : function(data, textStatus){

               // since we json encoded the php array it will
              // look something like this 
              //{ success : 'true', message : 'incorrect code'}

                   if(data.success == 'true'){
                       // what you plan on doing if the code is correct
                       alert(data.message);
                     }else{
                       // what you do if the code is incorrect
                       alert(data.message);
                     }
            }

       });

     // stop the form from submitting
     return false;
 });

});

Ben sadece bu konuda yapması gerektiğini düşünüyorum. $. ajax yöntemi, tam onError ve here içine bakarak değer benzer mesajlar gibi birkaç diğer geri çağırmak fonksiyonları vardır. $. Ajax yöntemi ilk başta biraz zor, ama bunu bir kaç kez kullandıktan sonra, şimdi onlar ($.load, $.get, {[sahip diğer ajax yöntemleri üzerinde tercih (3)]} ya da $.post)