I voted for the first one because it's correct. I'm 99% sure it's correct. Perhaps there's some obscure English rule I'm unaware of (completely possible seeing as I'm merely a senior in high school), but I hear the second one used a lot by the rednecks here in Ohio, and it angers that that many of them use it. They have to know that it sounds funky, but it still happens. Oh well.
When you use "I have seen her" with "yesterday" you are using "have seen" as if it was past tense, which it is not.