Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][MySQL][PHP]Sprawdzanie czy użytkownik istnieje
Forum PHP.pl > Forum > Przedszkole
konradinho
Witam.

Ostatnio próbowałem robić walidację formularza w "locie". Ze wszystkimi polami poradziłem sobie oprócz jednego. Chodzi i pole "login". Chce sprawdzić w locie czy istnieje użytkownik o nazwie podanej w formularzu. Mianowicie:

Do sprawdzania używam tego skryptu:
http://www.position-absolute.com/articles/...tion-is-a-mess/

Znajduje się tam pliczek:
validateUser.php

Po zmianach wygląda on tak:

  1. <?php
  2.  
  3. $con = mysql_connect("***", "***", "");
  4.  
  5. /* RECEIVE VALUE */
  6. $validateValue=$_POST['u_login'];
  7. $validateId=$_POST['u_login'];
  8. $validateError=$_POST['validateError'];
  9.  
  10.  
  11. /* RETURN VALUE */
  12. $arrayToJs = array();
  13. $arrayToJs[0] = $validateId;
  14. $arrayToJs[1] = $validateError;
  15.  
  16. $spr1 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE u_login='$validateValue'"));
  17.  
  18. if($spr1[0] == 0){ // validate??
  19. $arrayToJs[2] = "true"; // RETURN TRUE
  20. echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH success
  21. }else{
  22. for($x=0;$x<1000000;$x++){
  23. if($x == 990000){
  24. $arrayToJs[2] = "false";
  25. echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH ERROR
  26. }
  27. }
  28.  
  29. }
  30.  
  31. ?>


Input w formularzu rejestracji wygląda tak:

  1. <input type="text" name="u_login" id="u_login" class="validate[required,custom[noSpecialCaracters],ajax[ajaxUser],length[4,15]">


Tutaj znajdują się pliki odpowiedzialne za walidację.

Czytałem trochę o JSON-ie, na serwerze u mnie jest wersja 1.2.1 czyli ta najnowsza. A skrypt dalej nie działa. Po wpisaniu nazwy użytkownika, cały czas wyświetla się informacja: * Loading, please wait

Bardzo proszę o wskazówki.

Pozdrawiam.
smietek
To prawdopodobnie błąd JSa, jeśli używasz Firefoxa zainstaluj Firebuga i sprawdź czy wyskakują jakieś błędy w konsoli.
konradinho
Cytat
To prawdopodobnie błąd JSa, jeśli używasz Firefoxa zainstaluj Firebuga i sprawdź czy wyskakują jakieś błędy w konsoli.


Konsola pokazuje błąd w linii 311:

  1. 311 if($.validationEngine.settings.allrules[customAjaxRule].alertTextOk){ // NO OK TEXT MEAN CLOSE PROMPT


W pliku:

http://www.position-relative.net/creation/...dationEngine.js

Dwie zmienne do pliku validateUser.php przenosi poprawnie:
  1. validateId u_login
  2. validateValue admin


Natomiast do zmiennej odpowiadającej za błąd przypisuje coś takiego:

  1. validateError ajaxUsername=eric
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.