Non è un vero e proprio errore, ma un "avvertimento"
Se ci fai caso, se l'autore si trova nel array (il primo if dello script è vero) non viene definita la variabile di nome $error, ma $result. Di conseguenza php ti avvisa, nel secondo if, che tenti di usare una variabile con non esite. In questo caso php in automatico la considera come NULL e lo script continua e dovrebbe funzionare senza problemi (ad eccezione dell'avviso).

Se disabiliti la visualizzazione dei warning/notice il messaggio non ti compare più (probabilmente lo script si affida a questo).
Cmq la cosa più corretta è di usare la funzione isset() per vedere se la variabile esiste. Quindi invece di

if($error)

devi fare

if(isset($error))