Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Modyfikacja funkcji
Forum PHP.pl > Forum > Przedszkole
Tomala88
Witam. Chciałbym zmodyfikować funkcję, która sprawdza czy w bazie danych znajduje się już dany login i e-mail, tak aby w przypadku trafienia wyświetlił się alert.
  1. $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[snitch.gif:]]' OR name = '$name'" );
  2.  
  3. if( $row['count'] ) $stop .= $lang['reg_err_8'];
  4. }
  5.  
  6. return $stop;
  7.  
  8. }


  1. alert('{$lang['reg_err_8']}');


Z racji, że język php jest mi obcy, nie jestem w stanie wykonać tej modyfikacji bez błędów składniowych.
Z góry dzięki za wszelką pomoc.
amii
Nie za bardzo co ten kod u góry miał robić.

Tu masz zapytanie do bazy
  1. $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[snitch.gif:]]' OR name = '$name'" );


Więc sprawdzasz czy wynik zwrócił 1 lub więcej rekordów, jeśli tak znaczy że w bazie znajduje się dany login lub e-mail (oczywiście zakładam że zapytanie jest OK)

I obsługujesz to w/g swoich potrzeb:
  1. if (mysql_num_rows($row) > 1) echo 'W bazie jest rekord(ów)';
  2. else echo 'W bazie nie ma rekord(ów)';
lord2105
chcesz alert w js?
Tomala88
Ten skrypt jest używany przy rejestracji, żeby sprawdzić czy dany login i hasło nie znajduje się już w bazie.

Podaje link: http://justpaste.it/77e do całego skryptu w nadziei, że znajdzie się ktoś kto będzie miał chęci do przegrzebania go.
Chodzi o parametry $name i $email.


Udało mi się dodać działający komunikat w js tylko, że niestety strona się przeładowuje i czyści formularz. Czy byłby ktoś w stanie zmodyfikować skrypt tak aby pojawiał się alert bez przeładowania strony?

Obecnie funkcja wygląda tak:
  1. $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[snitch.gif:]]' OR name = '$name'" );
  2.  
  3. if( $row['count'] ) $stop .= $lang['reg_err_8'];
  4. }
  5.  
  6. echo '<script type="text/javascript">alert("Login lub adres e-mail jest już używany w naszym serwisie!");</script>'; return $stop;
  7.  
  8. }
potreb
Z tego kodu co pokazałeś i tak nic nie jestem w stanie wywnioskować, jednak ten komunikat js, może lepiej go ukazać po przeładowaniu strony tj. zapisac go gdzieś w sesji i po przeładowaniu wyświetlić.
Tomala88
Zależy mi na tym żeby zapobiec czyszczeniu formularza. W tej chwili w bazie jest już dość dużo użytkowników i podejrzewam, że większość użytkowników po podaniu istniejącego już loginu i wyczyszczeniu formularza odpuści sobie rejestracje.

Może da się jakoś zrobić, żeby po przeładowaniu strony wpisane wcześniej dane pozostały?
W poprzednim poście podałem link do całego skryptu.
potreb
Tak naprawdę powinno być tak jak mówisz, jednak niektórzy robią tak formularze, że jak przeładuje stronie to dane pozostają, czasami bez hasła ale są i w przypadku wystąpienia błędu. To co przedstawiłeś tzn kod stworzony chyba na smartach nie wiele nam powie, bo nie widzimy pełnego kodu.

Zresztą jak to jakiś gotowiec czyli opensource to może poszukaj w sieci jakiegoś rozwiązania.
Tomala88
Oki, dzięki za pomoc.
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.