if(!preg_match('/^(http|ftp)([s]{0,1}):\/\/([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)(\.([a-z0-9]{2,6})){0,1}((:[0-9]){0}|(:[1-9]{1}[0-9]*))\//iu', $_POST['avatar']) || !isset($_POST['avatar'])) $errors['znakiavatar']=true;
Powyższy kod miałby za zadanie sprawdzić, czy we wpisanym polu znajdują się dozwolone znaki (sprawdzenie URL) lub czy nie jest pusty. Jeśli ma dozwolone znaki, albo jest pusty = powinno być ok.
Jednak takie coś sprawdza url dobrze, jednak nie pozwala na wysłanie pustego pola. Dla porównania podobne sprawdzenie co do imienia:
if (!preg_match('/^[a-ząćęłńóśźż]*$/ui', $_POST['imie']) || !isset($_POST['imie'])) $errors['znakiimie']=true;
i to działa. Jak zrobić, aby sprawdzenie URL też działało?
Uff... sporo męczenia, ale rozwiązaniem jest '&&'
