...

Innanzitutto (cosa che spero sia dovuta al fatto che hai messo il codice html qui), ti ricordo che i campi html si scrivono <tag attributo="valore"></tag>

Alcuni campi accettano il <tag /> direttamente, ma meglio sempre mettere attributo = "valore" anche per i campi form (method ed action e name), così come id e classi di fogli di stile.

Data questa piccola parentesi OT, torniamo IT:

Come controllare i campi?

1) Controllare che i campi esistano

Codice PHP:
// Esempio 1
if (isset($_POST['campo']))

// Esempio 2
if (isset($_GET['campo'])) 
2) Controllare che i campi non siano vuoti

Codice PHP:
// Esempio 1
if (trim($_POST['campo']) != "")

// Esempio 2
if (trim($_GET['campo']) != ""
3) Controllare che le due password siano uguali

Codice PHP:
if ($_POST['password1'] == $_POST['password2']) 
4) Viene sconsigliato l'md5 (sul sito php.net), io ad esempio uso il crypt:

Codice PHP:
$chiave "test"// mia chiave di criptazione
$password $_POST['password'];
$password crypt($password$chiave); // password criptata 
il sistema md5 dovrebbe funzionare in maniera simile salvo che forse non devi indicare tu una chiave

5) Controllare che l'email contenga una e solo una chiocciola ed almeno un punto devi usare le espressioni regolari (preg_match).

6) Per essere tranquillo contro le Sql Injection devi fixare tutti i campi, filtrare tutto quello che ti viene scritto anche vietando determinati caratteri (con le espressioni regolari) e trasformando alcuni caratteri speciali come lettere accentate e/o backslashes e/o etcetera almeno nella loro entità html.

Bastano come informazioni iniziali?