Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]klasa a wniej funkcja o zmienej liczbie parametrów
Forum PHP.pl > Forum > Przedszkole
bałwan
  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 .
melkorm
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ł :]
bałwan
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
ActivePlayer
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
bałwan
aha juz rozumie dzięki
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.