Nell'if non utilizzare or ma utilizza ||
per il resto sembra corretto, perchè ti restituisce qualche errore?