As duas palavras existem na língua portuguesa e estão corretas.
Ambas são formas verbais conjugadas no futuro do subjuntivo (na 1.ª e na 3.ª pessoa do singular). Referem-se, contudo, a verbos diferentes.
Tiver é uma forma conjugada do verbo ter.
Estiver é uma forma conjugada do verbo estar.
Verbo ter: Futuro do subjuntivo
(Quando eu) tiver
(Quando tu) tiveres
(Quando ele) tiver
(Quando nós) tivermos
(Quando vós) tiverdes
(Quando eles) tiverem
Verbo estar: Futuro do subjuntivo
(Quando eu) estiver
(Quando tu) estiveres
(Quando ele) estiver
(Quando nós) estivermos
(Quando vós) estiverdes
(Quando eles) estiverem
O futuro do subjuntivo se refere a um fato que poderá ocorrer no futuro. Pode ser utilizado também para indicar o desejo de que algo aconteça ou a possibilidade de que algo aconteça.
Os verbos ter e estar são muito usados pelos falantes da língua portuguesa, apresentando uma grande variedade de significados.
Ter refere-se ao ato de possuir, sentir, conter, gerar, considerar, precisar, expressar, guardar, contrair e alcançar, entre outros.
Estar refere-se ao ato de se encontrar, marcar presença, estabelecer relações, partilhar opiniões, fazer, consistir, pertencer, vestir e custar, entre outros.
A confusão entre estes dois verbos acontece porque é comum, numa linguagem informal, haver a supressão da sílaba inicial es- do verbo estar.
Linguagem informal: Se eu tiver dormindo, não me acorde!
Forma correta: Se eu estiver dormindo, não me acorde!
Linguagem informal: Tá tudo pronto para amanhã?
Forma correta: Está tudo pronto para amanhã?
Linguagem informal: Eu não taria preocupada se eu tivesse contigo!
Forma correta: Eu não estaria preocupada se eu estivesse contigo!