Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rejestracja, sprawdzenie
tukan
post 14.07.2012, 22:50:53
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


Witam,
Mam dla Was do sprawdzenia początek rejestracji. Nie ma tu jeszcze zapisu do bazy danych, ale mam gotową walidację loginu i hasła. Został e-mail, ale to będzie analogicznie to loginu. Podaję kod:
  1. <?php
  2. function connect() {
  3. try {
  4. $host = "localhost";
  5. $dbname = "sfwyf";
  6. $user = "root";
  7. $pass = "vertrigo";
  8.  
  9. $dbh = new PDO("mysql:host=$host; dbname=$dbname", $user, $pass);
  10.  
  11. echo "Połączenie nawiązane";
  12. return $dbh;
  13. } catch ( PDOException $error) { die("Failed to connect:" . $error->getMessage());
  14. }
  15.  
  16. }
  17.  
  18. function is_availble_login($dbh, $desired_login) // ta funkcja, bo jeszce będę wykorzystywał przy sprawdzaniu ajaxowym, to samo będzie dla meila
  19. {
  20. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  21. $sql = "SELECT * FROM users WHERE username =:username)";
  22. $q = $dbh->prepare($sql);
  23. try{ $count_row = $q->execute(array(':username'=>$desired_login));}
  24.  
  25. catch(PDOException $e) { print_r( "checking.... ".$e->getTrace() );}
  26. if ($count_row->fetchColumn() > 0) {
  27. return false;
  28. else return true;
  29. }
  30. }
  31. class r_User{
  32. public $id;
  33. public $pass;
  34. public $pass2;
  35. public $name;
  36. public $username;
  37. public $email;
  38. public $permission_level;
  39. public $validate = true;
  40. public $registration_error = array();
  41. public $registration_error_id = array();
  42. function valid_form{
  43. if(this->$pass==$this->pass2){
  44.  
  45. $this->pass = trim($this->pass);
  46. if( !preg_match('^(?:[0-9a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ!@#$%^&*()_-=+[]{}|.]{5,15})$', $this->pass)
  47. {
  48. array_push($registration_error, "Podane hasło nie jest poprawne. Musi posiadać od 5 do 15 znaków. Hasło może zawierać następujące znaki: cyfry; litery; oraz następujące znaki: !@#$%^&*()_-=+[]{}|.")
  49. array_push($regisration_error_id, 0) // żebym wiedział, które pole na czerwono}
  50. $validate = false;
  51. }
  52.  
  53.  
  54. }
  55. else {array_push($registration_error, "Podane hasła nie zgadzają się");
  56. array_push($regisration_error_id, 0) // żebym wiedział, które pole na czerwono}
  57. $validate = false;
  58.  
  59. }
  60. //teraz login
  61.  
  62. $this->username = trim($this->username);
  63. if( !preg_match('^(?:[0-9a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ._-!@#$&]{5,15})$', $this->username)
  64. {
  65. array_push($registration_error, "Podany login jest niepoprawnyasło nie jest poprawne. Musi posiadać od 5 do 15 znaków. Hasło może zawierać następujące znaki: cyfry; litery; oraz następujące znaki: ._-!@#$&")
  66. array_push($regisration_error_id, 1) // żebym wiedział, które pole na czerwono}
  67. $validate = false;
  68. }
  69. else{
  70. if(is_availble_login($dbh, $this->username))
  71. {
  72. //wpisuje do bazy
  73. }
  74. else{
  75. array_push($registration_error, "Ten login jest już zajęty");
  76. array_push($regisration_error_id, 1) // żebym wiedział, które pole na czerwono}
  77. $validate = false;
  78. }
  79.  
  80.  
  81. }
  82.  
  83.  
  84.  
  85. }
  86. else {array_push($registration_error, "Podane hasła nie zgadzają się");
  87. array_push($regisration_error_id, 0) // żebym wiedział, które pole na czerwono}
  88. $validate = false;
  89.  
  90. }
  91. }
  92.  
  93.  
  94.  
  95.  
  96. }
  97.  
  98.  
  99.  
  100. ?>

Możliwe, że gdzieś "ify" mogą zachodzić na siebie, ale to poprawię. Chodzi o koncepcje walidacji, jak ją poprawić/uoptymalnić?

Ten post edytował tukan 14.07.2012, 22:52:05
Go to the top of the page
+Quote Post

Posty w temacie
- tukan   rejestracja, sprawdzenie   14.07.2012, 22:50:53
- - Orzeszekk   Jeśli zerwiesz z syndromem - "Co nie ja napis...   14.07.2012, 23:29:24


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: 8.07.2025 - 10:08