Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] problemy początkującego - rejestracja
szczypior
post 16.09.2010, 19:27:40
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.02.2007

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


Witam

Postanowiłem spróbować swoich sił w OOP, na przykładzie skryptu rejestracji użytkowników. Napisałem coś takiego i o dziwo działa winksmiley.jpg Gdy dane są poprawne dodaje użytkownika, gdy nie to nie dodaje, ale za to również nie wyświetla komunikatu. Moja prośba do Was, doświadczonych w temacie osób, to zobaczenie czy ten kod jest napisany poprawnie (zgodnie ze sztuką), co można w nim ulepszyć i jak najlepiej rozwiązać wyświetlanie komunikatów, które w tej formie nie działają.

Za wszelkie opinie, porady serdecznie dziękujęsmile.gif

  1. class new_user
  2. {
  3. public $login;
  4. public $pass;
  5. public $re_pass;
  6. public $email;
  7.  
  8. function validate($dane)
  9. {
  10. $dane = htmlspecialchars($dane, ENT_QUOTES);
  11. $dane = mysql_real_escape_string($dane);
  12. {
  13. $dane = addslashes ($dane);
  14. }
  15. return $dane;
  16. }
  17.  
  18. function check_login ()
  19. {
  20. if ($this->login==$this->validate($this->login))
  21. {
  22. $query = mysql_query('SELECT id FROM test WHERE login = "'.$this->login.'"') or die (mysql_error());
  23. if (mysql_num_rows($query) != 0)
  24. {
  25. // login zajęty
  26. $komunikat = 'Wybrany login jest zajęty';
  27. return false;
  28. }
  29. else
  30. {
  31. // login wolny
  32. return $this->login;
  33. }
  34. }
  35. else
  36. {
  37. $komunikat = 'Login zawiera niedozwolone znaki';
  38. return false;
  39. }
  40. }
  41.  
  42. function check_pass ()
  43. {
  44. if ($this->pass==$this->validate($this->pass))
  45. {
  46. if ($this->pass==$this->re_pass)
  47. {
  48. if (strlen($this->pass)>5)
  49. {
  50. return md5($this->pass);
  51. }
  52. else
  53. {
  54. $komunikat = 'Podane hasło jest za krótkie (min. 6 znaków)';
  55. return false;
  56. }
  57. }
  58. else
  59. {
  60. $komunikat = 'Podane hasła są różne';
  61. return false;
  62. }
  63. }
  64. else
  65. {
  66. $komunikat = 'Hasło zawiera niedozwolone znaki';
  67. return false;
  68. }
  69.  
  70. }
  71.  
  72. function check_email ()
  73. {
  74. if (ereg("^[a-z0-9_\\.-]+@([a-z0-9_-]+\\.)+[a-z]{2,}$", $this->email))
  75. {
  76. return $this->email;
  77. }
  78. else
  79. {
  80. $komunikat = 'Podaj poprawny adres e-mail';
  81. return false;
  82. }
  83. }
  84.  
  85. function add_user ()
  86. {
  87. if($this->check_login() && $this->check_pass() && $this->check_email())
  88. {
  89. mysql_query("INSERT INTO test(login,pass,email) VALUES('".$this->check_login()."','".$this->check_pass()."','".$this->check_email()."')");
  90. {
  91. return true;
  92. }
  93. else
  94. {
  95. return false;
  96. }
  97. }
  98. }
  99.  
  100. }
  101.  
  102. $new = new new_user;
  103. $new->login = 'ssssss';
  104. $new->pass = 'aaaaaaaaa';
  105. $new->re_pass = 'aaaaaaaaa';
  106. $new->email = 'ttttt@gggggg.pl';
  107. $nowy = $new->add_user($new);
  108. echo $komunikat;


--------------------
Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.07.2025 - 17:21