What is the difference between sanitizing email and validating email?
FILTER_SANITIZE_EMAIL remove all characters except letters, digits and !#$%&'*+-=?^_{|}~@.[]`.
FILTER_VALIDATE_EMAIL validates whether the value is a valid e-mail address.
Which one should I use in login or registration form using php native?
You should first sanitize it and then validate it.
Is filter_input function enough to use while getting variables from post request to validate it right?
Should be enough. I usually use filter_var. Same end result.