Concerning repost (that is, sending POST data from the browser that has already been sent once, specifically for Game Chat messages):
If you simply reload the page, reposting is not done. However, if you click the Back button on the browser, and you resend the post data, it will repost, thus duplicating any message you sent to the Game Chat.
As a PHP programmer myself, I'd like to make a recommendation as to a way to prevent reposts for an entire session. On every form in every page in your site (if you have a good architecture this should be easy) put a hidden form field called 'postnum', set to the value of a SESSION variable called 'lastpost' plus one.
Then every time you find data in POST, check to see if $_POST['postnum'] is greater than $_SESSION['lastpost']. If it is not, then clear all data in POST. Otherwise, set 'lastpost' to the value of 'postnum', so that in your forms the new 'postnum' will be 'lastpost' + 1.
Note: It appears that you use POST rather than GET for querying for games. In that case it will be a bit more tricky since you'll want to be able to repost your queries but you should still be able to do it.