Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery][jquery.validate.min.js] Validacja z MySQL
Forum PHP.pl > Forum > Przedszkole
Chaker
Cześć,
wiecie może jak za pomocą jquery.validate.min.js sprawdzić czy adres e-mail jest już użyty?
Mam taki java script:
  1. $(document).ready(function(){
  2. $("#registration").validate({
  3. rules: {
  4. email: {
  5. remote: {url: 'validate.php', type: 'post', data: {'type': 'email'}}
  6. }
  7. },
  8. messages: {
  9. email: {
  10. remote: "Wpisany adres e-mail jest już użyty."
  11. }
  12. }
  13. });
  14. });

  1. $type = addslashes($_POST['type']);
  2. if ($type == "email" and isset($_POST['email'])) {
  3. $email = addslashes($_POST['email']);
  4. $result = mysql_query("select id from `users` where `email`='".$email."' limit 1;");
  5. if (@mysql_num_rows($result)) $out = false; else $out = true;
  6. print $out;
  7. }
  8. if (isset($socket)) mysql_close($socket);
Problem polega na tym, że nie za każdym razem JQuery podaje prawidłową odpowiedź. Za pierwszym razem zawsze, później jest różnie. Co robię źle?
Z góry dzięki
ixpack
Nie wiem co robisz źle... Ja poradziłem sobie z tym w ten sposób - podaję swój kod, żebyś przeanalizował i może dojdziesz:

Ps. "if (@mysql_num_rows($result)) $out = false; else $out = true;" talinijka mi dziwnie wygląda, ale głowy nie dam sobie uciąć winksmiley.gif

  1. var validator = $("#registration").validate({
  2. rules: {
  3. email: {
  4. required: true,
  5. email: true,
  6. remote: {url: "./remote/validate.php", type: "post"}
  7. }
  8. },
  9. messages: {
  10. required: "Wprowadź poprawny e-mail.",
  11. remote: "Podany e-mail jest już w użyciu."
  12. },
  13. success: function(label) {
  14. // set   as text for IE
  15. label.html(" ").addClass("checked");
  16. }
  17. });



./remote/validate.php:

  1. <?php
  2.  
  3. $test = $_POST['email'];
  4.  
  5. function connect()
  6. {
  7. $con = new mysqli('localhost', 'login albo baza nie pamietam co tu', 'pass', 'login albo baza nie pamietam co tu');
  8. if (!$con)
  9. return false;
  10. $con->autocommit(TRUE);
  11. return $con;
  12. }
  13.  
  14. function create_array($data)
  15. {
  16. $new_arrray = array();
  17.  
  18. for ($i=0; $row = $data->fetch_assoc(); $i++)
  19. $new_array[$i] = $row;
  20.  
  21. return $new_array;
  22. }
  23.  
  24. $lacz = connect();
  25. $kodowanie = $lacz->query("SET NAMES 'utf8';"); // to w sumie nie jest potrzebne
  26. $wynik = $lacz->query("SELECT e_mail FROM tabela WHERE e_mail = '".$test."');");
  27. $lacz->close();
  28. $email= create_array($wynik);
  29. if ($test == $email[0]['e_mail'] or $email == 'jakis mail jakbys uzywal masked input') echo 'false'; else echo 'true';
  30. }
  31.  
  32.  
  33. ?>


Oczywiście musisz sobie zabezpieczyć co trzeba - powinno działać, zmodyfikuj pod siebie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.