Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] FILTER_CALLBACK
Kao
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

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


Witam

Próbuję zrobić bardziej złożoną funkcję walidującą i zastanawiam się czy nie przesadziłem z funkcją check_user:
  1. <?php
  2. Function check_user($var) {
  3.    $var = trim(filter_var($var,FILTER_SANITIZE_STRING,FILTER_FLAG_ENCODE_HIGH|FILTER_FLAG_ENCODE_LOW,'ucwords')),
  4.    return (strlen($var) < 51 && strlen($var) > 2) ? $var : FALSE;
  5. }
  6.  
  7. $defs = array(
  8.    'name'      => array( 'filter'  =>  FILTER_CALLBACK,
  9.                          'options' => 'check_user') );
  10.  
  11. $input = filter_input_array(INPUT_POST, $defs);
  12.  
  13. // testujemy
  14. if ($input['name'] === FALSE) {
  15.    echo 'Za dużo znaków!';
  16. } else { echo 'Ok'; }
  17. ?>


Proszę o opinię!
Z góry dziękuję
Pozdr.
KaO

Ten post edytował Kao 27.05.2009, 23:23:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


A czemu po prostu nie dasz wyrażenia regularnego?

  1. <?php
  2. if(!preg_match('/^[A-ZŁ&brvbar;Ż]{1}[a-zćęłńóż&plusmn;&para;Ľ]{2,14}$/',$imie)){$error = 'niepoprawne imię';}
  3. ?>


Imię od 2 do 14 znaków i pisownia zgodna z regułami ortografii (pierwsza litera duża, reszta małe), z imionami dwuczłonowymi radzę sobie tak, że rozbijam je explodem i waliduję każdy człon oddzielnie (pewnie można od razu pregiem, ale nie jestem w tym za dobry). Oczywiście ideałem jest wykorzystać bazę imion, ale chodzi tylko przykład - podobnie można sprawdzać login i moim zdaniem jest to prostsze niż kombinowanie ze strlen.
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: 16.10.2025 - 20:22