Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [logowanie]-sprawdzanie użytkownika
dzesi
post 26.09.2007, 14:35:18
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
Jarod
post 26.09.2007, 15:14:57
Post #2





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

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


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


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
dzesi
post 26.09.2007, 22:54:38
Post #3





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

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


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
Go to the top of the page
+Quote Post
Jarod
post 27.09.2007, 05:40:03
Post #4





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.


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 08:19