isset() checks that the variable actually exists.
EG you have a form with a field called name. If you type nothing into it and send it, it will still be set (because the browser sent it) but it will be empty. In other words, $_POST['name'] = ''; but it is still a valid variable that is set.
If you send the form without creating the email field, then $_POST['email'] is not set - it will not exist as far as php is concerned because the browser did not send it.
See the difference? A variable is only set if the users browser sends it OR you create it in your code. empty() will just determine if the variable contains anything or not.
Thats my take on it anyway..
My helpful sig has gone because a mod below the administrator gave me an infraction - despite the administrator personally agreeing to it.
If you need any php tips or tricks you can PM me.