Ваше регулярное выражение описывает только один единственный символ. Либо используйте квантификатор , например +
, чтобы разрешить повторение [A-Za-z0-9]
один или несколько раз:
if (!preg_match("/^[A-Za-z0-9]+$/",$name))
Или вы можете инвертировать свое выражение и искать символы, которые не являются буквенно-цифровыми ([^A-Za-z0-9]
является дополнением к [A-Za-z0-9]
):
if (preg_match("/[^A-Za-z0-9]/",$name))