Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]klasa a wniej funkcja o zmienej liczbie parametrów
bałwan
post 15.05.2011, 14:36:03
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 21.02.2011

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


  1. <?php
  2. require './validate.php';
  3. ?>
  4.  
  5. <html><body>
  6. <form method="POST" action="register.php">
  7. Email: <input type="text" name="email" size="20" /><br />
  8. <input type="submit" value="OK" />
  9.  
  10. </form>
  11. </body></html>
  12. <?php
  13.  
  14. $as = $_POST['email'];
  15. if(isset($as) )
  16. $valid->validate($as);
  17.  
  18. if($valid->getEmail() == true)
  19. {
  20. echo 'ok';
  21. }
  22. else
  23. echo '!';
  24.  
  25. ?>

validate.php
  1. <?php
  2.  
  3. class validate
  4. {
  5. public $email;
  6. public $pass;
  7. public $login;
  8.  
  9. public function validate()
  10. {
  11. switch(func_num_args())
  12. {
  13. case 1:
  14. {
  15. $this->email = $email;
  16. }
  17. case 2:
  18. {
  19. $this->pass = $pass;
  20. }
  21. case 3:
  22. {
  23. $this->login = $login;
  24. }
  25. }
  26.  
  27.  
  28. }
  29. /*
  30.   * Function getEmail is to task validate email.
  31.   * $valid->getEmail($email);
  32.   * Function only takes is one param.
  33.   * Function returns false or true.
  34.   *
  35.   */
  36. public function getEmail()
  37. {
  38. if(preg_match('@^[A-Za-z0-9]{1}[a-zA-Z0-9\.\-\_]+\@[a-zA-Z0-9\.\-\_]+\.[a-z]{2,4}$@D', $this->email))
  39. return true;
  40. else return false;
  41. }
  42. }
  43.  
  44.  
  45. $valid = new validate;
  46. ?>


Wywala błąd
  1. Undefined variable: email in C:\wamp\www\tr\validate.php on line 15

Jak dla mnie to zaraz po wysłaniu formularza do zmiennej $as i wywołaniu $valid->validate($as); w funkcji validate switch powinien ustawić sie na 1 i zdefiniować $this->email = $email;
Jest błąd czyli znaczy że źle myślę ale nic nie mogę innego wymyślić .
Proszę o pomoc .
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
melkorm
post 15.05.2011, 14:43:29
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


a skąd bierzesz te zmienne?

Może:


I zobacz co robisz źle.

P.S.
Cytat
* Function getEmail is to task validate email.
* $valid->getEmail($email);
* Function only takes is one param.
* Function returns false or true.


Jeżeli nie potrafisz pisać w języku angielskim to pisz po polsku.
Do tego zainteresuj się poprawnym dokumentowaniem kodu PHP - phpDOC
getEmail - walidacja adresu e-mail, w życiu bym się nie domyślił :]

Ten post edytował melkorm 15.05.2011, 14:47:20


--------------------
Go to the top of the page
+Quote Post
bałwan
post 16.05.2011, 13:01:23
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 21.02.2011

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


Hmm najpierw jest pusta "array empty" potem znów są błędy typu
  1. Notice: Undefined variable: email in C:\wamp\www\tr\validate.php on line 16

a po wysłaniu formularza array
  1. 0 => string 'bałwan@stara.ta' (length=15)


zmieniłem switch tak żeby zaczynał sie od 0 (bo teraz się kapłem że liczy parametry od 0 a ja myślałem ze jak jest pusta to 0 biggrin.gif )ale to tez nie pomogło.

nie wiem czy wolno ale podbijam bo zależy mi na tym żeby mi ktoś wytłumaczył smile.gif

Ten post edytował bałwan 15.05.2011, 15:17:36
Go to the top of the page
+Quote Post
ActivePlayer
post 16.05.2011, 13:08:42
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


chodzi o to ze robisz
Kod
$this->email = $email;


a skad w $email wezmą sie potrzebne dane? zeby to Ci tak działało musisz wartosci pobrac uzywając func_get_args, która zwraca wszystkie podane do funkcji argumentu w kolejnosci wg ich podawania, czyli
Kod
$aArgs = func_get_args();
//i wtedy
$this->email = $aArgs[0];
$this->zupa = $aArgs[1];
$this->grzybowa = $aArgs[2];
//itd


Ten post edytował ActivePlayer 16.05.2011, 13:19:30
Go to the top of the page
+Quote Post
bałwan
post 16.05.2011, 13:11:52
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 21.02.2011

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


aha juz rozumie dzięki
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 Wersja Lo-Fi Aktualny czas: 20.06.2025 - 22:38