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
maxil
post
Post #2





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

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


oto moja klasa user:

  1. <?php
  2. include('db.php');
  3. class User
  4. {
  5. private $uid;
  6. private $fields;
  7.  
  8. public function __construct()
  9. {
  10. $this->uid = null;
  11. $this->fields = array('login' => '',
  12. 'haslo' => '',
  13. 'pozycja' => false,
  14. 'mail' => '',
  15. 'imie' => '',
  16. 'nazwisko' => '',
  17. 'miejscowosc' => '',
  18. 'data_urodzenia' => '',
  19. 'pseudonim' => '',
  20. 'hide_mail' => '',
  21. 'numer_gg' => '',
  22. 'skype' => '',
  23. 'podpis' => '',
  24. 'active' => false);
  25. }
  26.  
  27. public function __get($field)
  28. {
  29. if ($field == 'userId')
  30. {
  31. return $this->uid;
  32. }
  33. else
  34. {
  35. return $this->fields[$field];
  36. }
  37. }
  38.  
  39. public function __set($field, $value)
  40. {
  41. if (array_key_exists($field, $this->fields))
  42. {
  43. $this->field[$field] = $value;
  44. }
  45. }
  46.  
  47. public static function validateUsername($username)
  48. {
  49. return preg_match('/^[A-Z0-9]{2,20}$/i', $username);
  50. }
  51.  
  52. public static function validateEmailAddr($email)
  53. {
  54. return filter_var($email, FILTER_VALIDATE_EMAIL);
  55. }
  56.  
  57. public static function getById($uid)
  58. {
  59.  
  60. $u = new User();
  61. $query = sprintf('SELECT * FROM %susers WHERE id = %d', DB_TBL_PREFIX, $uid);
  62. $result = mysql_query($query, $GLOBALS['DB']);
  63.  
  64. if (mysql_num_rows($result))
  65. {
  66. $row = mysql_fetch_array($result);
  67. $u->login = $row['login'];
  68. $u->haslo = $row['haslo'];
  69. $u->pozycja = $row['pozycja'];
  70. $u->mail = $row['mail'];
  71. $u->imie = $row['imie'];
  72. $u->nazwisko = $row['nazwisko'];
  73. $u->miejscowosc = $row['miejscowosc'];
  74. $u->data_ur = $row['data_urodzenia'];
  75. $u->pseudo = $row['pseudonim'];
  76. $u->hide_mail = $row['hide_mail'];
  77. $u->numer_gg = $row['numer_gg'];
  78. $u->skype = $row['skype'];
  79. $u->podpis = $row['podpis'];
  80. $u->act_code = $row['activation_code'];
  81. $u->active = $row['active'];
  82. $u->uid = $uid;
  83. }
  84.  
  85. return $u;
  86. }
  87.  
  88. public static function getByUsername($username)
  89. {
  90. $u = new User();
  91. $query = sprintf('SELECT * FROM %susers WHERE login = "%s"', DB_TBL_PREFIX,
  92. mysql_real_escape_string($username, $GLOBALS['DB']));
  93. $result = mysql_query($query, $GLOBALS['DB']);
  94.  
  95. if (mysql_num_rows($result))
  96. {
  97. $row = mysql_fetch_array($result);
  98. $u->login = $username;
  99. $u->haslo = $row['haslo'];
  100. $u->pozycja = $row['pozycja'];
  101. $u->mail = $row['mail'];
  102. $u->imie = $row['imie'];
  103. $u->nazwisko = $row['nazwisko'];
  104. $u->miejscowosc = $row['miejscowosc'];
  105. $u->data_ur = $row['data_urodzenia'];
  106. $u->pseudo = $row['pseudonim'];
  107. $u->hide_mail = $row['hide_mail'];
  108. $u->numer_gg = $row['numer_gg'];
  109. $u->skype = $row['skype'];
  110. $u->podpis = $row['podpis'];
  111. $u->act_code = $row['activation_code'];
  112. $u->active = $row['active'];
  113. $u->uid = $row['id'];
  114. }
  115.  
  116. return $u;
  117. }


oraz dalsza część:

  1. public function save()
  2. {
  3. if ($this->uid)
  4. {
  5. $query = sprintf('UPDATE strona_user set login = "%s", haslo = "%s", mail = "%s", imie = "%s", nazwisko = "%s", miejscowosc = "%s" ' .
  6. 'data_urodzenia = "%s", pseudonim = "%s", hide_mail = "%s", numer_gg = "%s", skype = "%s", podpis = "%s", active = %d WHERE id = %d',
  7. db_TBL_PREFIX,
  8. mysql_real_escape_string($this->login),
  9. mysql_real_escape_string($this->haslo),
  10. mysql_real_escape_string($this->nazwisko),
  11. mysql_real_escape_string($this->miejscowosc),
  12. mysql_real_escape_string($this->data_urodzenia),
  13. mysql_real_escape_string($this->pseudonim),
  14. mysql_real_escape_string($this->hide_mail),
  15. mysql_real_escape_string($this->numer_gg),
  16. mysql_real_escape_string($this->skype),
  17. mysql_real_escape_string($this->podpis),
  18. $this->isActive, $this->userId);
  19. mysql_query($query, $GLOBALS['DB']);
  20. }
  21. else
  22. {
  23. $query = sprintf('INSERT INTO %susers (login, haslo, pozycja, mail, imie, nazwisko, miejscowosc, data_urodzenia, pseudonim, ' .
  24. 'hide_mail, numer_gg, skype, podpis, active) VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", %d)',
  25. DB_TBL_PREFIX,
  26. mysql_real_escape_string($this->login),
  27. mysql_real_escape_string($this->haslo),
  28. mysql_real_escape_string($this->pozycja),
  29. mysql_real_escape_string($this->nazwisko),
  30. mysql_real_escape_string($this->miejscowosc),
  31. mysql_real_escape_string($this->data_urodzenia),
  32. mysql_real_escape_string($this->pseudonim),
  33. mysql_real_escape_string($this->hide_mail),
  34. mysql_real_escape_string($this->numer_gg),
  35. mysql_real_escape_string($this->skype),
  36. mysql_real_escape_string($this->podpis),
  37. $this->isActive);
  38.  
  39. mysql_query($query, $GLOBALS['DB']);
  40.  
  41. $this->uid = mysql_insert_id($GLOBALS['DB']);
  42. }
  43. }
  44.  
  45. public function byMaxil($uid)
  46. {
  47. if ($this->isActive)
  48. {
  49. $query = sprintf('UPDATE %susers SET active = "1" WHERE id = %d', DB_TBL_PREFIX, $uid);
  50. mysql_query($query, $GLOBALS['DB']);
  51. }
  52. }
  53.  
  54. public function setInactive()
  55. {
  56. $this->isActive = false;
  57. $this->save();
  58.  
  59. $token = random_text(30);
  60. $query = sprintf('INSERT INTO %spending (user_id, token) ' .
  61. 'VALUES ($d, "$s")', DB_TBL_PREFIX, $this->uid, $token);
  62. mysql_query($query, $GLOBALS['DB']);
  63.  
  64. return $token;
  65. }
  66.  
  67. public function setActive($token)
  68. {
  69. $query = sprintf('SELECT token FROM %spending WHERE user_id = %d ' .
  70. 'AND token = "%s"', DB_TBL_PREFIX,
  71. $this->uid,
  72. $result = mysql_query($query, $GLOBALS['DB']);
  73.  
  74. if (!mysql_num_rows($result))
  75. {
  76. return false;
  77. }
  78. else
  79. {
  80. $query = sprintf('DELETE FROM %Spending WHERE user_id = %d ' .
  81. 'AND token = "%s"', DB_TBL_PREFIX,
  82. $this->uid,
  83. mysql_query($query, $GLOBALS['DB']);
  84.  
  85. $this->isActive = true;
  86. $this->byMaxil($thid->uid);
  87. return true;
  88. }
  89. }
  90. }
  91. ?>


a to formularz rejestracyjny:

  1. echo '<form method="post">Aby zarejestrować się w naszym serwisie należy wypełnić pola poniżej!</center><br><br>
  2. <table align="center">
  3. <tr>
  4. <td align="right">Login: <font color="red">*</font></td><td><input type="text" name="login" value="'.$_SESSION['a'].'" class="input"></td>
  5. </tr>
  6. <tr>
  7. <td align="right">Hasło: <font color="red">*</font></td><td><input type="password" name="haslo" class="input"></td>
  8. </tr>
  9. <tr>
  10. <td align="right">Powtórz Hasło: <font color="red">*</font></td><td><input type="password" name="hasloreplay" class="input"></td>
  11. </tr>
  12. <tr>
  13. <td align="right">Adres e-mail: <font color="red">*</font></td><td><input type="text" name="mail" value="'.$_SESSION['b'].'" class="input"></td>
  14. </tr>
  15. </table>
  16. <hr width="100%">
  17. <table align="center">
  18. <tr>
  19. <td align="right">Imie:</td><td><input type="text" name="imie" value="'.$_SESSION['c'].'" class="input"></td>
  20. </tr>
  21. <tr>
  22. <td align="right">Nazwisko:</td><td><input type="text" name="nazwisko" value="'.$_SESSION['d'].'" class="input"></td>
  23. </tr>
  24. <tr>
  25. <td align="right">Miejscowość:</td><td><input type="text" name="adres" value="'.$_SESSION['n'].'" class="input"></td>
  26. </tr>
  27. </table><center>
  28. Data urodzenia: <select name="dzien">';
  29. for ($i=0; $i<31; $i++) {
  30. $id = $i + 1;
  31. echo '<option value="'.$id.'"'; if($_SESSION['e'] == $id) {echo ' selected="selected"';} echo '>'.$id.'</option>';
  32. }
  33. echo '</select>-<select name="mc">';
  34. for ($i=0; $i<12; $i++) {
  35. $im = $i + 1;
  36. echo '<option value="'.$im.'"'; if($_SESSION['f'] == $im) {echo ' selected="selected"';} echo '>'.$im.'</option>';
  37. }
  38. echo '</select>-<select name="rok">';
  39. $s = date("Y") - 9;
  40. for ($i=1960; $i<$s; $i++) {
  41. echo '<option value="'.$i.'"'; if($_SESSION['g'] == $i) {echo ' selected="selected"';} echo '>'.$i.'</option>';
  42. }
  43. echo '</select> (dd-mm-rrrr)</center>
  44. <table align="center">
  45. <tr>
  46. <td align="right">Pseudonim:</td><td><input type="text" name="pseudo" value="'.$_SESSION['h'].'" class="input"></td>
  47. </tr>
  48. <tr>
  49. <td align="right">Ukryć E-Mail?:</td><td><input type="radio" name="r" value="Tak"'; if ($_SESSION['i'] == "Tak") {echo 'checked="checked"';} echo '>Tak
  50. <input type="radio" name="r" value="Nie"'; if ($_SESSION['i'] == "Nie") {echo 'checked="checked"';} else if (empty($_SESSION['i'])) {echo 'checked="checked"';} echo '>Nie</td>
  51. </tr>
  52. <tr>
  53. <td align="right">Numer GG:</td><td><input type="text" name="gg" value="'.$_SESSION['j'].'" class="input"></td>
  54. </tr>
  55. <tr>
  56. <td align="right">Skype:</td><td><input type="text" name="skype" value="'.$_SESSION['k'].'" class="input"></td>
  57. </tr>
  58. </table>
  59. <center>Podpis:<br>
  60. <textarea name="podpis" cols="30" rows="5">'.$_SESSION['m'].'</textarea><br>
  61. <hr width="100%">
  62. Przepisz kod widoczny na obrazku
  63. <table align="center">
  64. <tr>
  65. <td><img src="images/captcha.php" id="cap"></td><td><input type="text" name="captcha" class="input"> <font color="red">*</font>
  66. <input type="hidden" name="register" value="1"></td>
  67. </tr>
  68. </table>
  69. <hr width="100%">
  70. <table align="center">
  71. <tr>
  72. <td><input type="checkbox" name="regulamin" value="akceptuje"></td><td><small>Zapoznałem(am) się z <a href="?uid=regulamin">regulaminem</a> i akceptuję jego postanowienia.</small></td>
  73. </tr>
  74. <tr>
  75. <td><input type="checkbox" name="dane" value="wyrazam"></td><td><small>Wyrażam zgode na przetwarzanie moich danych osobowych<sup>1</sup>.</td>
  76. </tr>
  77. </table>
  78. <hr width="100%">
  79. <br>
  80. <input type="image" name="submit" src="images/button_wyslij.jpg">
  81. </form>';
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 - 19:14