Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Walidacja formularza (funkcje)
peja1990
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


  1. $error = array();
  2. global $error;
  3.  
  4. function validateNames($value) {
  5. if(!ereg("^[A-ZŁŚ]{1}[a-ząęółśżźćń]{1,30} [A-ZŁŚ]{1}[a-ząęółśżźćń]{1,30}$", $value) && strlen($value) < 3)
  6. return $error[] = 1;
  7. }
  8.  
  9. function validateEmail($value) {
  10. if(filter_var($value, FILTER_VALIDATE_EMAIL) === FALSE && strlen($value) == 0)
  11. return $error[] = 1;
  12. }
  13.  
  14. function validateSubject($value) {
  15. if(empty($value))
  16. return $error[] = 1;
  17. }
  18.  
  19. function validateContent($value, $min) {
  20. if(empty($min)) $min = 10;
  21. if(strlen($value) < $min)
  22. return $error[] = 1;
  23. }
  24.  
  25. function validateCaptcha($code, $security) {
  26. if(strtolower($code) != strtolower($security))
  27. return $error[] = 1;
  28. }
  29.  
  30. echo validateSubject('');
  31. echo validateContent('', '');
  32. echo '>>>'.sizeof($error).'<<<'; // Tutaj chcę mieć ilość errorów, ale ciągle jest zero :(


Co tutaj więcej pisać ?! ... (IMG:style_emoticons/default/sad.gif)

Do każdej funkcji dodałem globalną zmienną $error i działa (IMG:style_emoticons/default/wink.gif)

Ten post edytował peja1990 4.05.2012, 19:45:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kaem
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Zacznij używać klas, stosowanie globali nie jest wskazane. Stwórz sobie na początek klase (pisane z palca):
  1. class Validate
  2. {
  3.  
  4. prrivate $errors = array(); // tablica na błędy
  5.  
  6. // tutaj te Twoje funkcje przerobione, np:
  7. public function validateSubject($value) {
  8. if(empty($value))
  9. {
  10. $this->setError('subject', 'wartość nie może być pusta')
  11. return false;
  12. }
  13. return true;
  14. }
  15.  
  16. public function setError($name, $msg) // ustaw error
  17. {
  18. $this->errors[$name] = $msg;
  19. }
  20. public function getErrors()
  21. {
  22. return $this->errors;
  23. }
  24. public function countErrors() // ile errorów
  25. {
  26. return count($this->errors);
  27. }
  28. }



Oczywiście taka klasa jest prymitywna, ale z czasem sobie ją rozbudujesz albo jeszcze lepiej - napiszesz od nowa z zupełnie innym podejściem (bardzo wskazane).

Ten post edytował kaem 4.05.2012, 20:01:04
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 - 11:26