Что случилось с этим?
if((preg_match('[a-zA-Z]{1,7}+',$_POST['naam'])) and (preg_match('[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!',$_POST['password'])))
в первом регулярном выражении я хочу строку длиной 1-7, содержащую только буквенные буквы.
Во втором регулярном выражении я хочу строку, содержащую буквы и цифры с помощью! в конце.
У вас отсутствует разделитель вокруг ваших регулярных выражений:
if((preg_match('/[a-zA-Z]{1,7}+/',$_POST['naam'])) and (preg_match('/[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!/',$_POST['password'])))
{1,7}
– это означает от 1 до 7
{1,7}+
– это неудобно, так как + означает, что предыдущий символ должен быть хотя бы один раз. обычно используется как [az]+
<- требует az
{1,7}+
неверно.