Both phrases are correct. However, "gift" can be used before a noun to act like an adjective. We don't use "present" in this way.
Both phrases are correct and quite common. You can say a gift/present for someone's birthday.
I'm buying a gift for her birthday.
I'm buying a present for her birthday.
Similarly, we can talk about a birthday gift or a birthday present.
Did you get Patricia a birthday gift/present?
What's the difference between "gift" and "present"? They both are well-matched synonyms that mean basically the same thing. However, "gift" and "present" are not always interchangeable. "Gift" can be used before a noun to act like an adjective. We don't use "present" in this way.
A gift basket for her birthday is a cool option.
I bought him a gift card for his birthday.
Be also aware that when choosing something intangible for someone's birthday, such as an online course or an annual membership, "gift" is more common than "present".
I got him an online course as his birthday gift.