Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Walidacja przy logowaniu problem
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Silny
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.06.2010

Ostrzeżenie: (0%)
-----


  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. }


Ten post edytował Silny 27.07.2010, 11:21:49
Go to the top of the page
+Quote Post
jacusek
post
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No tak, ale wtedy jaki powininem dać warunek zamiast
  1. if(($_POST['user'])==$user)
Go to the top of the page
+Quote Post
Silny
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.06.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował Silny 27.07.2010, 11:26:34
Go to the top of the page
+Quote Post
jacusek
post
Post #6





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:26