Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z rejestracją użytkowników.
maxil
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 11
Dołączył: 8.11.2008
Skąd: Sieradz

Ostrzeżenie: (10%)
X----


Witam wszystkich mam problem z rejestracją użytkowników.
Napisałem sobie prosty kod rejestracji użytkowników.
Dane są przechowywane w bazie SQL.

A oto kod który napisałem:

  1. $password1 = (isset($_POST['haslo'])) ? $_POST['haslo'] : '';
  2. $password2 = (isset($_POST['hasloreplay'])) ? $_POST['hasloreplay'] : '';
  3. $password = ($password1 && $password1 == $password2) ?
  4. sha1($password1) : '';
  5.  
  6. $captcha = (isset($_POST['captcha']) && strtoupper($_POST['captcha']) == $_SESSION['captcha']);
  7.  
  8. if ($password &&
  9. $captha &&
  10. User::validateUsername($_POST['login']) &&
  11. User::validateEmailAddr($_POST['mail']) &&
  12. $_POST['login'] &&
  13. $_POST['mail'] &&
  14. $_POST['regulamin'] &&
  15. $_POST['dane'])
  16. {
  17. $user = User::getByUsername($_POST['login']);
  18. if ($user->userId)
  19. {
  20. echo '<center><b>Przepraszamy, podana nazwa użytkownika już jest w użyciu.</b><br>
  21. Prosimy podać inną nazwę użytkownika.</center>';
  22. }
  23. else
  24. {
  25. $data_urodzenia = $_POST['dd'].'-'.$_POST['mm'].'-'.$_POST['rrrr'];
  26. $u = new User();
  27. $u->username = $_POST['login'];
  28. $u->haslo = $password;
  29. $u->mail = $_POST['mail'];
  30. $u->imie = $_POST['imie'];
  31. $u->nazwisko = $_POST['nazwisko'];
  32. $u->miejscowosc = $_POST['miejscowosc'];
  33. $u->data_urodzenia = $data_urodzenia;
  34. $u->pseudonim = $_POST['pseudo'];
  35. $u->hide_mail = $_POST['r'];
  36. $u->numer_gg = $_POST['gg'];
  37. $u->skype = $_POST['skype'];
  38. $u->podpis = $_POST['podpis'];
  39. $token = $u->setInactive();
  40. $mail = sendMailRegistred($_POST['mail'], $token);
  41.  
  42. if (!$mail)
  43. {
  44. echo '<center><b>Rejestracja nie została zakończona!.</b><br>
  45. Wystąpił błąd podczas wysyłania e-maila z kodem aktywującym.<br>
  46. Skontaktuj się z administratorem aby uzyskać niezbędne informacje na temat aktywowania swojego konta!</center>';
  47. }
  48. else
  49. {
  50. echo '<center><b>Dziękujemy za zarejestrowanie się w naszym serwisie.</b><br>
  51. Odbierz swoją poczte aby uzyskać informacje na temat aktywacji swojego konta.</center>';
  52. }
  53. }
  54. }
  55. else
  56. {
  57. echo '<center><strong><b>Podano nieprawidłowe dane.</b></strong><br>
  58. Prosimy prawidłowo wypełnić wszystkie pola, abyśmy mogli zarejestrować konto użytkownika.</center>';
  59. }


Mój problem polega na tym, że gdy wypełniam formularz rejestracyjny to zawsze wywali mi że dane są nieprawidłowe.
Męczę się już z tym trochę ale bez żadnych rezultatów.
Mam nadzieję że ktoś mi pomoże rozwiązać mój problem.

Z góry dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Sprawdziłem ten kod, u mnie po odpowiednich modyfikacjach i poprawieniu settera generuje prawie poprawne składniowo zapytanie sql, brakuje tylko wartości pola login. Pokaż zapytanie, jakie generuje metoda save (i strukturę tabeli). Spróbuj może uprościć generowanie tego zapytania, zrezygnowałbym ze stosowania printf dla przejrzystości:

  1. public function save()
  2. {
  3. // (...)
  4. $query = "INSERT INTO ".DB_TBL_PREFIX.".users (login, haslo, pozycja, mail, imie, nazwisko, miejscowosc, data_urodzenia, pseudonim, " .
  5. "hide_mail, numer_gg, skype, podpis, active) VALUES ('".
  6. mysql_real_escape_string($this->username)."','".
  7. mysql_real_escape_string($this->haslo)."','".
  8. mysql_real_escape_string($this->pozycja)."','".
  9. mysql_real_escape_string($this->mail)."','".
  10. mysql_real_escape_string($this->imie)."','".
  11. mysql_real_escape_string($this->nazwisko)."','".
  12. mysql_real_escape_string($this->miejscowosc)."','".
  13. mysql_real_escape_string($this->data_urodzenia)."','".
  14. mysql_real_escape_string($this->pseudonim)."','".
  15. mysql_real_escape_string($this->hide_mail)."','".
  16. mysql_real_escape_string($this->numer_gg)."','".
  17. mysql_real_escape_string($this->skype)."','".
  18. mysql_real_escape_string($this->podpis)."'";
  19. if($this->isActive) {
  20. $query.=",'1'";
  21. }
  22. else {
  23. $query.=",'0'";
  24. }
  25. $query.=")";
  26. // (...)
  27. }
  28. // (...)
  29. // i wywołanie:
  30. $u = new User();
  31. $u->username = "login";
  32. $u->haslo = "pwd";
  33. $u->mail = 'mail';
  34. $u->imie = 'imie';
  35. $u->nazwisko = 'nazwisko';
  36. $u->miejscowosc = 'miejscowosc';
  37. $u->data_urodzenia = "43.23.1234";
  38. $u->pseudonim = 'pseudo';
  39. $u->hide_mail = 'r';
  40. $u->numer_gg = 'gg';
  41. $u->skype = 'skype';
  42. $u->podpis = 'podpis';
  43. $u->pozycja = 'programista php';
  44. $token = $u->setInactive();
  45. //
  46. // wywala:
  47. INSERT INTO DB_TBL_PREFIX.users (login, haslo, pozycja, mail, imie, nazwisko, miejscowosc, data_urodzenia, pseudonim, hide_mail, numer_gg, skype, podpis, active) VALUES ('','pwd','programista php','mail','imie','nazwisko','miejscowosc','43.23.1234','pseudo','r','gg','skype','podpis','0')
Go to the top of the page
+Quote Post

Posty w temacie
- maxil   [MySQL][PHP] Problem z rejestracją użytkowników.   21.12.2009, 02:06:39
- - darko   Pokaż całą klasę User (zwłaszcza statyczne metody:...   21.12.2009, 02:37:37
- - maxil   oto moja klasa user: [PHP] pobierz, plaintext ...   21.12.2009, 10:50:22
- - nospor   No trochę własnej inwencji... Cytatto zawsze wywa...   21.12.2009, 10:50:36
- - maxil   i jeszcze funkcja wysyłająca email: [PHP] pobierz...   21.12.2009, 10:55:03
- - darko   Czy nie jest tak, że w metodach getByUsername oraz...   21.12.2009, 11:23:32
- - maxil   dobra problem z niespełnionym warunkiem if rozwiąz...   21.12.2009, 11:28:08
|- - Kruq   Cytat(maxil @ 21.12.2009, 12:28:08 ) ...   21.12.2009, 12:26:58
- - darko   $this->isActive to boolean, nie wiem czy j...   21.12.2009, 11:33:00
- - maxil   przedtem problem tkwił w captcha. dokładnie w plik...   21.12.2009, 11:36:28
- - darko   Chyba wiem, dodaje puste wartości dlatego, że ...   21.12.2009, 12:02:19
- - nospor   Cytatto napisz rozwiązanie , wiesz .. zawsze jakaś...   21.12.2009, 12:34:50
- - maxil   no to czyli jak? mam utworzyć te zmienne przez: va...   21.12.2009, 16:43:05
- - darko   var $login to kilka lat temu, raczej protecte...   21.12.2009, 17:34:10
- - maxil   pokażcie mi na przykładzie jak ro zrobić, bo siedz...   21.12.2009, 21:42:36
- - darko   1. 2. 3. Zwłaszcza numer 2.   21.12.2009, 21:49:31
- - maxil   Cytat(darko @ 21.12.2009, 21:49:31 ) ...   22.12.2009, 01:44:43
- - darko   Nie potrafisz korzystać z mysql_fetch_array, dowód...   22.12.2009, 02:11:59
- - maxil   Cytat(darko @ 22.12.2009, 02:11:59 ) ...   22.12.2009, 02:17:09
- - darko   Luz, jakoś nie zauważyłem magicznego settera i get...   22.12.2009, 02:43:44
- - maxil   problem jest tylko z funkcją save() nie wiem dlacz...   22.12.2009, 02:49:08
- - darko   poprawiłeś ten setter jak pisałem w ostatnim pości...   22.12.2009, 03:15:14
- - maxil   setter poprawiłem tak jak pisałeś ale nadal nic   22.12.2009, 14:54:37
- - darko   Sprawdziłem ten kod, u mnie po odpowiednich modyfi...   22.12.2009, 15:59:58
- - maxil   no nareszcie działa darko dla ciebie 3 plusiki ...   22.12.2009, 17:28:27
- - darko   wyłączone magic_quotes w konfiguracji ? Wywołania ...   22.12.2009, 17:38:17


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: 28.12.2025 - 14:19