After calling the redirect function header, should I call exit or not?
You definitely should. Otherwise the script execution is not terminated. Setting another header alone is not enough to redirect.