I think I figured it out, why not change:
if (isset($id) && is_numeric($id))
Which, if I understand correctly, in Human, says If the ID is there and it's a number...
to
if (empty($id) || !is_numeric($id))
Which, by my mind, in Human, says If the ID is not there OR it isn't a number...
Am I right?