Here's how to make your Arduino do things from over the internet without an ethernet or wifi shield. This is a simple way to make your project controllable from anywhere in the world!
Step 1: Platform Compatability
This method WILL NOT work under Windows. I can't tell you how long it took me to figure that out. The command we're using, fopen() is not implemented the same way under Windows and Linux, so you have to use Linux. Never used it before? Don't panic, it's not that bad.
Step 2: Setting up your server
You'll need to get a server running PHP for this to work. I'm going to assume you have a fresh copy of Ubuntu. There are literally thousands of tutorials on how to install Ubuntu, so I'll refer you to those if you don't.
Open a terminal and type:
sudo apt-get install php5 mysql-server apache2
It will prompt you for a root MySQL password, so give it one.
Open a browser and go to http://localhost. You should see a page that says "It works!". Next run this in a terminal:
sudo gedit /var/www/info.php
And paste in this code:
Save and close the file, then run
sudo service apache2 restart
Go to http://localhost/info.php
and you should see a purple table with a bunch of PHP stuff. If you do, congrats! You are now running a PHP server. Next, let's set up a page to control the Arduino.