Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z rejestracją użytkowników.
maxil
post 21.12.2009, 02:06:39
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
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
darko
post 21.12.2009, 02:37:37
Post #2





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

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


Pokaż całą klasę User (zwłaszcza statyczne metody: validateUsername, validateEmailAddr oraz getByUsername) i funkcję sendMailRegistred (po angielsku powinno być sendRegisteredEmail). Kilka uwag:
1. stosuj jednak instrukcje if, jak widać sam się gubisz w ternariuszach
2. nie podobają mi się linie 17. i 18 (bo nie znam implementacji klasy User):
$user = User::getByUsername($_POST['login']);
if ($user->userId)
nigdzie nie tworzysz instancji obiektu User, korzystasz z metod statycznych, a w linii 18. próbujesz pobrać (magicznym getterem?) wartość pola userId (chyba, że nie pokazujesz całego kodu i gdzieś wcześniej jest $user = new User(); questionmark.gif ) chyba, że jeszcze inaczej: metoda getByUsername zwraca instancję anonimowej klasy - stdClass, dlatego proszę podaj kod klasy User, bo trzeba wróżyć z fusów...
3. pokaż jeszcze formularz rejestracyjny, tak dla pewności

Ten post edytował darko 21.12.2009, 02:54:29


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 10:50:22
Post #3





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
nospor
post 21.12.2009, 10:50:36
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No trochę własnej inwencji...

Cytat
to zawsze wywali mi że dane są nieprawidłowe.
Skoro ci wyswietla ten blad, znaczy ze ten warunek:
if ($password &&
$captha &&
User::validateUsername($_POST['login']) &&
User::validateEmailAddr($_POST['mail']) &&
$_POST['login'] &&
$_POST['mail'] &&
$_POST['regulamin'] &&
$_POST['dane'])
Nie jest spełniony.
Usiądź sobie teraz wygodnie i sprawdź każdą z tych składowych a dowiesz się która z nich jest nie prawdziwa. Jak już będziesz wiedział która z nich nawala, to będziesz wiedział gdzie masz szukać błedu. Trudne?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 10:55:03
Post #5





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

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


i jeszcze funkcja wysyłająca email:

  1. function sendMailRegistred($mail, $token)
  2. {
  3. $to = $mail;
  4. $subject = 'Aktywacja konta na ******.pl';
  5. $message = 'Dziękujemy za rejestracje w naszym serwisie.
  6.  
  7. Jeśli nie rejestrowałeś się w naszym serwisie po prostu zignoruj tą wiadomość!
  8.  
  9. Twoje konto nie jest jeszcze w pełni aktywne, aby je aktywować kliknij na link poniżej:
  10.  
  11. ___________________________________________
  12. <a href="http://www.*******.pl/index.php?uid=verify&method=automatic&code='.$token.'" target="_blank">http://www.*******.pl/index.php?uid=verify...036;token.'</a>
  13. ___________________________________________
  14.  
  15. Jeśli powyższy link nie działa możesz aktywacji dokonać ręcznie wchodząc na stronę:
  16.  
  17. ___________________________________________
  18. <a href="http://www.*******.pl/index.php?uid=verify&method=manual" target="_blank">http://www.*******.pl/index.php?uid=verify&method=manual</a>
  19. ___________________________________________
  20.  
  21. A następnie w pole wpisać ten kod:
  22.  
  23. ___________________________________________
  24. '.$token.'
  25. ___________________________________________
  26.  
  27. Pozdrawiamy';
  28. $from = '*********.pl';
  29.  
  30. $naglowki = "From: $from".PHP_EOL."Reply-To: $to".PHP_EOL."Content-type: text/plain; charset=iso-8859-2";
  31.  
  32. $submit = mail($mail, $subject, $message, $naglowki);
  33.  
  34. if (!$submit)
  35. {
  36. return false;
  37. }
  38. else
  39. {
  40. return true;
  41. }
  42. }
Go to the top of the page
+Quote Post
darko
post 21.12.2009, 11:23:32
Post #6





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

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


Czy nie jest tak, że w metodach getByUsername oraz getById pomyliłeś mysql_fetch_array z mysql_fetch_object ? Mam wątpliwości czy w metodzie validateUsername jest poprawne wyrażanie regularne. Linia 6. - jesteś pewien, że wcześniej zapisałeś cokolwiek do $_SESSION['captcha'] ?

Ten post edytował darko 21.12.2009, 11:28:30


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 11:28:08
Post #7





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

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


dobra problem z niespełnionym warunkiem if rozwiązany.
a teraz jeszcze jeden problem.
dlaczego podczas rejestracji funkcja save() w klasie nic nie dodaje do bazy znaczy dodaje jest nowy rekord ale jest pusty żadnych danych w nim nie ma.
dlaczego?
powiem wam że pierwszy raz używam klasy i nie znam tej metody za bardzo.
Go to the top of the page
+Quote Post
darko
post 21.12.2009, 11:33:00
Post #8





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

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


$this->isActive to boolean, nie wiem czy jak sformatujesz go %d dla sprintf to automatycznie zostanie skonwertowany na 1 lub 0 ?
W którym miejscu był wcześniej błąd w warunku ? Dlaczego raz korzystasz z DB_TBL_PREFIX,, a raz z db_TBL_PREFIX = czy to na pewno ma się znaleźć w zapytaniu?

Ten post edytował darko 21.12.2009, 11:35:07


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 11:36:28
Post #9





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

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


przedtem problem tkwił w captcha.
dokładnie w pliku generującym go, nie tworzył sesji w której miał być zapisywany aktualny kod z obrazka.

a tym db_TBL_PREFIX
to akurat mój błąd.
niedociśnięty shift
widzę że dokładnie przeanalizowałeś mój kod. za to na pewno poleci +

Ten post edytował maxil 21.12.2009, 11:44:48
Go to the top of the page
+Quote Post
darko
post 21.12.2009, 12:02:19
Post #10





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

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


Chyba wiem, dodaje puste wartości dlatego, że
$this->login
$this->haslo
i cała reszta nie istnieje, zobacz mój post kilka "pięter" wyżej - wyciągasz dane za pomocą mysql_fetch_array, a przypisujesz je jakbyś korzystał z mysql_fetch_object (i stdClass). Zmień to albo dodaj odpowiednie pola do klasy User albo zamiast $this->login stosuj $this->fields['login'] (w zapisie i odczycie danych).

Ten post edytował darko 21.12.2009, 12:07:17


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Kruq
post 21.12.2009, 12:26:58
Post #11





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


Cytat(maxil @ 21.12.2009, 12:28:08 ) *
dobra problem z niespełnionym warunkiem if rozwiązany.


to napisz rozwiązanie , wiesz .. zawsze jakaś pomoc dla potomnych ...


--------------------
Go to the top of the page
+Quote Post
nospor
post 21.12.2009, 12:34:50
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
to napisz rozwiązanie , wiesz .. zawsze jakaś pomoc dla potomnych ...
Nawet jak napisze to znajdzie sie taki ktos jak ty i nie będzie potrafił tego przeczytać tongue.gif

ps: jak nie zrozumiales aluzji: rozwiązanie przecież juz podał.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 16:43:05
Post #13





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

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


no to czyli jak? mam utworzyć te zmienne przez:
var $login;
var $haslo;
[...]
Go to the top of the page
+Quote Post
darko
post 21.12.2009, 17:34:10
Post #14





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

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


var $login to kilka lat temu, raczej protected $login; itd. Wszystko opisałem już w poście wyżej.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 21.12.2009, 21:42:36
Post #15





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

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


pokażcie mi na przykładzie jak ro zrobić, bo siedzę nad tym od rana i nic mi nie wychodzi ;/

może mi to nie działać poprawnie z powodu że mam zainstalowany na serwerze PHP5?

Ten post edytował maxil 21.12.2009, 21:43:48
Go to the top of the page
+Quote Post
darko
post 21.12.2009, 21:49:31
Post #16





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

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


1.
2.
3.
Zwłaszcza numer 2. winksmiley.jpg


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 22.12.2009, 01:44:43
Post #17





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

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


Cytat(darko @ 21.12.2009, 21:49:31 ) *
1.
2.
3.
Zwłaszcza numer 2. winksmiley.jpg


ale po co mam używać mysql_fetch_object jak mysql_fetch_array działa jak należy
Go to the top of the page
+Quote Post
darko
post 22.12.2009, 02:11:59
Post #18





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

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


sciana.gif angrysmiley.gif
Nie potrafisz korzystać z mysql_fetch_array, dowód ? Metoda getByUsername linia 98. Dane należy w tym wypadku wyciągać za pomocą pętli while, zajrzyj chociaż do manuala.
Wytłumacz mi co oznacza ten zapis (linia 99) $u->login = $username; ? Do czego przypisujesz tutaj wartość parametru $username ? Masz gdzieś pole login w klasie User? Nie widzę. Jaka jest różnica pomiędzy $u->username a $u->fields['username'] ? Albo $this->username a $this->fields['username'] ? Jaka jest różnica pomiędzy mysql_fetch_object a mysql_fetch_array ? Zajrzałeś przynajmniej do przykładów w tych linkach, które podałem ? Tak na prawdę ja juz Ci odpowiedziałem na wszystkie pytania w poście #10


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
maxil
post 22.12.2009, 02:17:09
Post #19





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

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


Cytat(darko @ 22.12.2009, 02:11:59 ) *
sciana.gif angrysmiley.gif
Nie potrafisz korzystać z mysql_fetch_array, dowód ? Metoda getByUsername linia 98. Dane należy w tym wypadku wyciągać za pomocą pętli while, zajrzyj chociaż do manuala.
Wytłumacz mi co oznacza ten zapis (linia 99) $u->login = $username; ? Do czego przypisujesz tutaj wartość parametru $username ? Masz gdzieś pole login w klasie User? Nie widzę. Jaka jest różnica pomiędzy $u->username a $u->fields['username'] ? Albo $this->username a $this->fields['username'] ? Jaka jest różnica pomiędzy mysql_fetch_object a mysql_fetch_array ? Zajrzałeś przynajmniej do przykładów w tych linkach, które podałem ? Tak na prawdę ja juz Ci odpowiedziałem na wszystkie pytania w poście #10


a może jednak potrafię dowód? funkcja getByUsername działa bez zarzutu wyciąga wszystkie wymagane dane. mówisz pętla while tak? ale po co ona jak ja wyciągam dane tylko jednego użytkownika a nie wszystkich więc pętla jest w tym wypadku zbędna

chcesz wiedzieć co oznacza linia 99 już mówię
do $u->login jest zapisywany nick użytkownika na podstawie którego jest wyciągane wszystko z bazy dowód?

public static function getByUsername($username)

Ten post edytował maxil 22.12.2009, 02:21:00
Go to the top of the page
+Quote Post
darko
post 22.12.2009, 02:43:44
Post #20





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

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


Luz, jakoś nie zauważyłem magicznego settera i gettera. Szukamy dalej. Mój błąd smile.gif
Masz spie#@&ony setter, zabrakło s w $this->field[$field] = $value;
Powinno być:
  1. public function __set($field, $value)
  2. {
  3. if (array_key_exists($field, $this->fields))
  4. {
  5. $this->fields[$field] = $value;
  6. }
  7. }

Powinno śmigać

Ten post edytował darko 22.12.2009, 10:47:18


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.06.2025 - 11:04