Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [logowanie]-sprawdzanie użytkownika
dzesi
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jarod
post
Post #2





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


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

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 19:59