The answer of Eliot is almost right but those meaning are "教えてしまう" and "教えてしまった".
I want to add more...
教えた: I taught sth.
教えてしまった：I finished teaching sth or I taught sth unintentionally
教えちゃった ：I finished teaching sth or I taught sth unintentionally(sometimes with some passion including meaning of joking)
教える: I teach sth.
教えてしまう: I teach sth unintentionally
教えちゃう : I teach sth unintentionally (sometimes with some passion including meaning of joking)
The meaning of "教えちゃった" is almost same as 教えてしまった.
And that present "教えちゃう" as well as the present "教えてしまう".
Among these words "しまう","しまった","ちゃう","ちゃった",
the most important difference from present simple and past simple is "not intentionally, accidently or surprisingly".
教えちゃう is more casual or friendly expression of 教えてしまう.
Also 教えちゃった is more casual or friendly expression of 教えてしまった.
When we use these phrases, we want to express something unintentional happened with us in a way to be more friendly, casual, like joking, heartful, things like that.
In normal conversation especially with close friends or family we frequently use these phrases.
A: 私のお菓子は、どこ？ (where is my snack?)
B: え！？食べちゃった！(Oops! I ate it! :P)
In B's phrase, you can say "食べてしまった" as well. But the expression is a little bit changed.
It's included more serious meaning than "食べちゃった".
In other words, if you say "食べちゃった", you can put the smily(like this--->:P) after the frase but if "食べてしまった", i don't think so.
And from these conversation with "ちゃった", we can imagine they are family or having good relationship as well,,,though A will get angry after hearing B's frase.:P