please also `error` and check `if (empty($error))` again, so listeners can make the submit fail