Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Walidacja przy logowaniu problem
Forum PHP.pl > Forum > Przedszkole
jacusek
Witam.
Tworzę prosty skrypt dodawania użytkowników i haseł do bazy. Poniżej znajduje się część pliku odpowiedzialnego za walidację.
  1. $pyt='select nazwa from uzytkownicy';
  2. $rez3= mysqli_query($mysqli, $pyt);
  3. while ($nowaTab=mysqli_fetch_array($rez3, MYSQLI_ASSOC))
  4. {
  5. $user=$nowaTab['nazwa'];
  6. }
  7. if(($_POST['user'])==$user){
  8. die ("taki użytkownik już istnieje!!! wybierz inną nawzę");
  9. }

No właśnie - nie wiem dlaczego, ale ta część skryptu działa tylko wtedy kiedy wprowadzę nazwę użytkownika, który jest ostatni w tebeli użytkownicy. Dlaczego tak się dzieje? Proszę o jakieś wskazówki.
Fifi209
zapytanie powinno wyglądać +/- tak:

select id from uzytkownicy where nazwa = "'.$zmienna.'" limit 1;

i jeżeli id zostanie zwrócone, wtedy wiesz że taki user istnieje.
Silny
  1. $wynik = mysql_query("SELECT * FROM uzytkownicy WHERE login='$login'");
  2. if (mysql_num_rows($wynik) <> 0) {
  3. $blad++;
  4. echo '<p>Podana nazwa użytkownika została już zajęta.</p>';
  5. }
jacusek
No tak, ale wtedy jaki powininem dać warunek zamiast
  1. if(($_POST['user'])==$user)
Silny
to co Ci dałem już sprawdza całość winksmiley.jpg jeśli jest błąd to od razu wyrzuca, że nazwa jest zajęta, ale pamiętaj, że tabela z nazwą usera musi mieć nazwę $login, jeśli am inna, to zmień w tym co Ci dałem
jacusek
Dzięki za wskazówki, ale wymyśliłem to w jeszcze inny sposób choć głównie post fifi209 naprowadził mnie prawidłowo.
Jeżeli to kogoś interesuje i się komuś przyda oto moje rozwiązanie:
  1. $pyt='select id from uzytkownicy where nazwa=\''.$_POST['user'].'\'';
  2. $rez3= mysqli_query($mysqli, $pyt);
  3. while ($rek=mysqli_fetch_array($rez3, MYSQLI_ASSOC))
  4. {
  5. $user = $rek['id'];
  6. }
  7. if(($user)!=null){
  8. echo ("Już jest taki użytkownik. Wróć i wymyśl inną nazwę");
  9. }
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.