Allora, ti spiego come funziona il tutto.

Per prima cosa devi sapere che php prima aveva per default le register_globals ad on. Ciò significava che tutte le variabili inviate con post o get, le variabili di sessione ed altri tipi di variabili erano recuperabili anche senza fare riferimento all'array globale ($_POST, $_GET, ecc). Ora le register_globals sono settate ad off e quindi tali tipi di variabili sono recuperabili SOLO UTILIZZANDO L'ARRAY GLOBALE RELATIVO a meno che non si cambi tale impostazione. Per sicurezza è meglio lasciarlo così com'è.

Detto questo è inutile fare una cosa del genere

$var = $_POST['var']

e poi utilizzare cmq nel form la variabile $_POST['var'] ed è sbagliato fare una cosa del genere

$_POST['var'] = $var.

In definitiva devi usare solo gli array globali (ora ti conviene visto che cmq hai cambiato già tutto il codice).

Per l'altro errore era dovuto al fatto che hai utilizzato la seguente sintassi $query = "... '$_POST['var']'...";
Quando la variabile viene già racchiusa tra apici come nel tuo caso la sintassi corretta è questa
$query = "... '$_POST[var]'...";

o quella che ti è stata suggerita da luke83.