Tach!
Die Lösung ist: Das ist ein Legacy-Problem. Bis PHP 5.3 gab es die register_globals Option, und wenn die auf TRUE stand (Default vor PHP 4.2), wurde jeder gepostete Wert zu einer globalen Variablen.
Variablennamen dürfen weder Punkt noch Space enthalten. Deswegen konvertiert PHP sie in Unterstriche.
Trifft aber nur auf Variablennamen zu. Keys von Arrays können alle möglichen Zeichen enthalten. Da konvertiert auch PHP nichts, soweit ich weiß. Eine Ausnahme gibts bei <input type=image>, aber das nimmt man ja kaum.
Im Zweifelsfall mal mit var_dump($_POST)
oder print_r($_POST)
schauen, was da wirklich ankommt.
dedlfix.