Forum Moderators: phranque
Think of POST as sending a command and GET as receiving a query. Originally, GET was a method for retrieving data (e.g. search results) whereas POST is for actions and changes to the data (e.g. edit a database entry).
But more importantly, browsers retrieve GET results by appending the form inputs to the URL. If the form submission fails, the browser will warn a re-POSTer that the data will be resubmitted (potentially charging the card a second time), whereas GET simply reloads the url. On this same note, GET requests can be cached and bookmarked. And if you are GETting with a credit card number, you are passing it as text (checkout.cgi?lname=Smith&fname=Joe&cc=9011002693240032&exp=200505...).
Use POST.