Какво по-точно не се получава с required?
Принципно required си е атрибута, който задължава полето да бъде попълнено.
Между другото, уверявай се, че добавяш правилния DOCTYPE винаги отгоре, за да знае браузъра за какъв HTML става въпрос.
В случая ти трябва:
HTML code:
<!DOCTYPE html>
<html>
...
И като допълнение за в бъдеще, никога не се доверявай само на защита от client-side (атрибути като този или JavaScript). Дори да ги правиш, винаги трябва да имаш защита откъм server-side(PHP).
Данните трябва да се филтрират навсякъде(особено откъм сървъра, защото клиента се заобикаля лесно).