У вас есть синтаксическая ошибка (белая страница смерти, если сообщение об ошибке отключено)
$nameError = 'Polje moze sadrzavati samo slova i razmak;
Должно быть:
$nameError = 'Polje moze sadrzavati samo slova i razmak';
Еще одна вещь, которая может вас получить, это ваше имяПроверка Regex проста, она не учитывает такие вещи, как Jane Doe-Smith
, или J o h n S m i t h
, или j
, или даже ''
, пустая строка.
Я бы использовал что-то вроде этого:
if(!preg_match("/^([a-z]+)\s+(?:([a-z]+)\s+)?([-a-z]+)$/i" , $_POST['name'])){
$nameError = 'Polje moze sadrzavati samo slova i razmak;
}
Regex:
([a-z]+)
совпадений a
хотя z
(первые 2 группы захвата) \s+
соответствует одному или нескольким пробелам (?...)
группа без захвата ?
опционально, отчество ([-a-z]+)
соответствует -
и a
Хотя z
(для дефисных фамилий) \i
флаг без учета регистра.
Тест регулярных выражений
Контрольные примеры:
John Smith {match}
John E Smith {match}
Jane J Doe-Smith {match}
John {no match}
Это небольшой размер выборки, но он должен охватывать большинство английских имен (не уверен, что это за язык Polje moze
).
Однажды я много лет назад встречался с девушкой с дефисной фамилией ... lol.
Последнее, что нужно, - включить ошибки отображения и установить для отчета об ошибках значение, подобное E_ALL
(для развития).Я бы сказал, использовать ini_set('display_errors', '1')
и error_reporting()
, но они не будут отлавливать синтаксические ошибки в одном и том же файле (как правило).