Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ([PHP])Rejestracja
Scoout
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 19.03.2008

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


Pisze własną stronne dopiero co poznałem się na obiektach i chcę się spytać czy ten skrypt jest poprawny czy można w nim coś zmienić czy ulepszyć??

  1. <?php
  2.  
  3. $mysql=mysql_connect('localhost', 'root', 'aidaid');
  4. mysql_select_db ('gra');
  5.  
  6. class Rejestracja
  7. {
  8.  
  9. public function __construct() //Dane podstawowe
  10. {
  11. $this->nick[dlugosc][min]=3;
  12. $this->nick[dlugosc][max]=16;
  13. }
  14.  
  15. public function nick($nick) //Sprawdzanie poprawnosci Nicku
  16. {
  17. $zapytanie='SELECT id FROM usr_akt WHERE nick=''.$nick.''';
  18. $result=mysql_query($zapytanie);
  19. $row=mysql_fetch_array($result);
  20.  
  21. if($row!==false) $blad=1;
  22. if(strlen($nick)<$this->nick[dlugosc][min]) $blad=2;
  23. if(strlen($nick)>$this->nick[dlugosc][max]) $blad=3;
  24.  
  25. if(isset($blad)) $status=$blad; else $status='ok';
  26.  
  27. return $status;
  28. }
  29.  
  30. public function blad($blad) //Kontrola błędów
  31. {
  32. if($blad!=='ok') 
  33. {
  34. switch($blad)
  35. {
  36. case 1: echo'Dany nick istnieje już w bazie danych'; break;
  37. case 2: echo'Nick jest za krutki'; break;
  38. case 2: echo'Nick jest za długi'; break;
  39. }
  40.  
  41. } else echo('Nick jest prawidłowy');
  42.  
  43. return;
  44. }
  45. }
  46.  
  47.  
  48. $user=new Rejestracja;
  49. $nick=$user->nick('qwqw');
  50. $user->blad($nick);
  51.  
  52. ?>




Jestem otwarty na wszelką krytykę oprócz ORTOGRAFJ!! ;p

Ps. Jest to tylko część sprawdzająca Nick ale chce wiedzieć czy ogólne założenia są dobre np bezpieczeństwo...

Wiem ze do tego powinna być dodane sprawdzanie czy w Nicku nie ma Html ale to tyle mojej wiedzy...

Ten post edytował Scoout 26.03.2008, 13:01:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Cytat
Jestem otwarty na wszelką krytykę oprucz ORTOGRAFJ!! ;p

Wybacz, ale to forum to nie śmietnik. Temat Zamykam dopóki nie wyślesz mi wykazu wszystkich błędów wraz z poprawna formą. Dodatkowo dostajesz moderacje na nowo powstałe tematy.
Go to the top of the page
+Quote Post
Scoout
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 19.03.2008

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


Błędy poprwaiłem i nadal proszę o pomoc... smile.gif
Go to the top of the page
+Quote Post
Trobin
post
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 6
Dołączył: 23.03.2008
Skąd: Szczecin

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


Przede wszystkim nazwa klasy nie bardzo odzwierciedla to co ona robi - napisane jest rejestracja a sprawdzasz tam czy nick istnieje, ale nie dodajesz nowego - to nie jest rejestracja. To jest raczej walidowanie danych do późniejszej rejestracji (czy nick nie jest za długi, krótki lub nie istnieje już w bazie). Jeszcze takie moje czepialstwo - nie lubie nazw klas zaczynających się n=od dużej litery tongue.gif A tak poważniej to zwyczajowo przyjęło się, żeby używać angielskich nazw klas winksmiley.jpg . Piszesz
  1. <?php
  2. if(strlen($nick)>$this->nick[dlugosc][max]) $blad=3;
  3. ?>

a potem
  1. <?php
  2. case 2: echo'Nick jest za krótki'; break;
  3. case 2: echo'Nick jest za długi'; break;
  4. ?>

mogę się mylić, ale sprawdzanie czy nick jest za długi chyba nie zadziała.
Poza tym skoro już używasz OOP w PHP to zastanów się nad używaniem obiektowego sterownika do bazy danych - ot dla wygody i możliwości późniejszej rozbudowy. Samej stricte obiektowości nie komentuję, ponieważ sam nie czuję się w tej dziedzinie pewnie winksmiley.jpg .


--------------------
Pracuję na: Apache 2.2.4, MySQL 5.0.20a, PHP 5.3.0
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 Aktualny czas: 19.08.2025 - 07:26