Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [logowanie]-sprawdzanie użytkownika
Forum PHP.pl > Forum > PHP
dzesi
Witam mam problem ze spraszaniem użytkowników czy dany login występuje już w bazie

  1. <?php
  2.  
  3. include_once('config_database.php');
  4. //odbieranie danych 
  5. $login=$_POST['login'];
  6. $haslo=$_POST['haslo'];
  7. $haslotwo=$_POST['haslotwo'];
  8.  
  9. //////////////////////////////////////////////////////////////////////////////
  10.  
  11.  
  12. $polaczenie=mysql_connect(connect,user,password)or die('connect_error'.mysql_error());
  13. mysql_select_db(database)or die('database_error'.mysql_error());
  14. //tu powinno sprawdzać czy jest taki login czy go nie ma 
  15. $zapytanielog= "SELECT * FROM user login='$login'";
  16. $sprawdzlog= mysql_query($zapytanielog)or die(mysql_error());
  17. $numrows=mysql_num_rows($sprawdzlog);
  18. if($numrows > 0)
  19. {
  20. echo "Podany login już istnieje";
  21. }
  22. if($haslo!=$haslotwo)
  23. {
  24. echo "Hasło jest błedne";
  25. }
  26.  
  27. $zapisrej="INSERT INTO user(`login`,`haslo`)VALUES('$login','$haslo')";
  28. $touser=mysql_query($zapisrej);
  29. if($touser)
  30. {
  31. echo"błąd nie można dodać użytkownika";
  32. }
  33.  
  34. ?>

nigdy nie maiłem potrzeby masłowej rejestracji , zawsze było kilka osób dodawane przez phpmyadmin i zapytania sql, mam nadzieje ze pokażecie co robie zle
Jarod
Załóż klucz unikalny na pole login i podczas dodawania sprawdzasz:
  1. <?php
  2. if (mysql_errno() == 1062 )
  3. {
  4.  echo '<p>Konto o takim loginie już istnieje !</p>';
  5.  
  6. (...)
  7. }
  8. ?>
dzesi
Nadal nic , próbowałem tak
  1. <?php
  2. $numrows= mysql_num_rows($sprawdzlog);
  3. if($numrows > 0)
  4. {
  5. echo "Podany login już istnieje";
  6. }
  7. i tak 
  8. $zapytanielog= "SELECT count(*) FROM `user` WHERE `login` = '$login '";
  9. $sprawdzlog= mysql_query( $zapytanielog ) or die ( mysql_error() );
  10. if( $sprawdzlog['count(*)'] > 1)
  11. {
  12. echo " nie ma takiego loginu";
  13. }
  14. ?>

Ale nic z tego nadal pokazuje ciągle ze login jest w bazie przy każdej rejestracji , ale tak na prawdę go nie ma
wiec co jest nie tak ?, jeśli możecie to podzielcie sie wiedzą jak wy tworzycie takie rzeczy ?, jakim sposobem i wykonanie itd.Bo może[na pewno] są lepsze sposoby niż ten co sam wymyśliłem
Jarod
1. Jeżeli chcesz sprawdzać (przed dodaniem usra do bazy) czy login jest zajęty to nie rób tego w ten sposób:
  1. SELECT count(*) FROM `user` WHERE....
tylko
  1. SELECT login FROM `user` WHERE....


Wydaje mi się, że będzie szybciej - ale nigdy tego nie sprawdzałem.


2.

  1. <?php
  2. (...)
  3. $result = mysql_query('INSERT INTO user VALUES (...odpowiednie, przefiltrowane dane...)');
  4.  
  5. if (mysql_errno() == 1062)
  6. {
  7.  // nie udało się dodać user do bazy - podany login już istnieje, odpowiednia obsługa tej sytuacji
  8. }
  9. else
  10. {
  11. // pomyślnie dodano usera do bazy, przekierowanie lub jakiś komunikat...
  12. }
  13. ?>


Ale na pole login (bo ono jest unikalne) dodajesz klucz unikalności (odsyłam do manuala). Kod błędy 1062 oznacza duplikat danych, czyli próbujesz wstawić do bazy coś co już jest a powinno być unikalne. Kod pisany z głowy.
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.