Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Walidacja formularza
sebekzosw
post
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


Witam,

piszę z prośbą o pomoc.

mam taki fragment kodu:

  1. class FormValidator
  2. {
  3. private $data = array();
  4.  
  5. function addValidation($name, $value, $parms = false)
  6. {
  7. if($parms)
  8. $this->data['parms'][$name] = $value;
  9. else
  10. $this->data[$name] = $value;
  11.  
  12. return $this;
  13. }
  14.  
  15. function isNumeric()
  16. {
  17.  
  18. }
  19. }
  20.  
  21. $parm = new FormValidator;
  22. $parm->loadArray(array('parms' => array('test3' => 'test5')));
  23. $parm->addValidation('name', 'value')->isNumeric();
  24. $parm->addValidation('name2', 'value', true);
  25. $parm->addValidation('name3', 'value', true);


Działać ma to tak, że dodaje do tablicy dane, jednak od razu chciałbym to sprawdzać:

$parm->addValidation('name', 'value')->isNumeric();

jednak nie wiem jak przekazać wartość do funkcji isNumeric tak jak powyżej pokazałem. Wiem, że mogę zapytać Google, jednak nie wiem co wpisać. Jak dokonać sprawdzenia pola? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sebekzosw
post
Post #2





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


  1. class FormValidator
  2. {
  3. private $data = array();
  4. private $_Temp;
  5.  
  6. function loadArray($array)
  7. {
  8. $this->data = array_merge($this->data, $array);
  9. }
  10.  
  11. function checkOption($name, $add = true, $parms = false)
  12. {
  13. $this->_Temp = '';
  14.  
  15. if(isset($_POST[$name]))
  16. {
  17. if($add)
  18. {
  19. if($parms)
  20. $this->data['parms'][$name] = $_POST[$name];
  21. else
  22. $this->data[$name] = $_POST[$name];
  23. }
  24.  
  25. $this->_Temp = $_POST[$name];
  26. }
  27.  
  28.  
  29. return $this;
  30. }
  31.  
  32. function isEmpty($info = '')
  33. {
  34. if(empty($this->_Temp))
  35. echo $info;
  36.  
  37. return $this;
  38. }
  39.  
  40. function checkLength($min, $max, $info = '')
  41. {
  42. if(mb_strlen($this->_Temp, 'UTF-8') > $max || mb_strlen($this->_Temp, 'UTF-8') < $min)
  43. echo $info;
  44.  
  45. return $this;
  46. }
  47.  
  48. public function __destruct()
  49. {
  50. echo '<pre>';
  51. print_r($this->data);
  52. }
  53. }
  54. $_POST['pole1'] = '';
  55. $_POST['pole2'] = 'wartosc2';
  56. $_POST['pole3'] = 'wartosc3';
  57.  
  58. $parm = new FormValidator;
  59. $parm->loadArray(array('parms' => array('test3' => 'test5')));
  60. $parm->checkOption('pole1')->isEmpty('Uzupełnij pole 1')->checkLength(6, 10, 'blad2');
  61. $parm->checkOption('pole2', false, true)->isEmpty('Uzupełnij pole 2');
  62. $parm->checkOption('pole3', true, true)->isEmpty('Uzupełnij pole 3');


Da się zrobić, że w momencie sprawdzania:

$parm->checkOption('pole1')->isEmpty('Uzupełnij pole 1')->checkLength(6, 10, 'blad2');

jak isEmpty zwróci false to funkcja checkLength się nie wywoła? w funkcji isEmpty dla testów dałem return false; ale to daje mi błąd:


Fatal error: Call to a member function checkLength() on a non-object in D:\xampp\htdocs\form.php on line 67


Dobra, już sobie poradziłem... (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 08:23