Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Obiektowo - pobieranie parametrów metody.
Forum PHP.pl > Forum > Przedszkole
92nasti
Witam,


napisałem sobie prosty skrypt jako że postanowiłem zacząć naukę OOP. Skrypt to w zasadzie szkielet bez zabezpieczeń, jednak napotkałem pewien problem.

Po wywołaniu poniższej klasy wyskakuje komunikat 'Proszę uzupełnić wszystkie dane!', wnioskując parametry nie są w ogóle pobierane.

  1. <?php
  2.  
  3. class Register {
  4.  
  5. public $login;
  6. public $password;
  7. public $mail;
  8.  
  9. public function check_register( $login, $password, $mail){
  10.  
  11. if( isset($login) && isset($password) && isset($mail)){
  12.  
  13. if( $this->login == '' or $this->password == '' or $this->mail == ''){
  14.  
  15. echo 'Proszę uzupełnić wszystkie dane!';
  16.  
  17. }
  18. else{
  19.  
  20. $this->query = mysql_query("SELECT * FROM `baza`.`uzytkownicy` WHERE `login` = '$this->login'");
  21.  
  22. if( mysql_num_rows( $this->query) > 1){
  23.  
  24. echo 'Podana nazwa użytkownika jest już zajęta!';
  25.  
  26. }
  27. else{
  28.  
  29. $this->query = mysql_query("INSERT INTO `baza`.`uzytkownicy` VALUES ('', '$this->login', '$this->password', '$this->mail', '')");
  30.  
  31. echo 'Konto zostało utworzone poprawnie!';
  32.  
  33. }
  34.  
  35. }
  36.  
  37. }
  38.  
  39. }
  40.  
  41. }
  42.  
  43. $obiekt = new Register;
  44.  
  45. $obiekt-> check_register( 'Piotrek', 'haslo', 'mail');
  46.  
  47.  
  48. ?>
lobopol
  1. if( $this->login == '' or $this->password == '' or $this->mail == ''){

To jest źle, sprawdzasz nieustawione parametry powinno być, nie ustawiłeś jeszcze ich
  1. if( $login == '' or $password == '' or $mail == ''){

i w elsie przypisać te zmienne do ich odpowiedników.
92nasti
Poprawiłem kod, jednak to nadal nic nie zmienia. Poza tym parametry zostały wysłane, patrz ostatnia linia, z tym że nie wiem czy zrobiłem to prawidłowo.
lobopol
Wysłałeś, ale nie przypisałeś.
  1. $this->login != $login;

W momencie sprawdzania
  1. if( $this->login == '' or $this->password == '' or $this->mail == ''){

Te zmienne są puste.
drozdii07
Możesz zamienić tak jak mówił kolega wyżej, lub wywołać
  1. __construct
i tam przypisać wszystko do
  1. $this->login // itp.
92nasti
Faktycznie, problem rozwiązany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.