You've got conflicting cases in your variable names.
The HTML form has a field called: yourname (that's taken from the name="yourname" part)
At the top of your PHP script (the 'after' one from your most recent post), you have this line:
$YourName = $_POST['yourname'];
You now have a variable called $YourName that will contain the contents of the "yourname" POST from the form.
However, in your insert query you've called the variable '$yourname' - which doesn't exist.
The case matters; for simplicity, keep them all the same. All you need to do is change:
$YourName = $_POST['yourname'];
to
$yourname = $_POST['yourname'];
You can also use the POST values directly in the query:
$sql="INSERT INTO gogreencontact (YourName, YourEMail, Subject, Message)
Values ('$_POST[yourname]', '$_POST[youremail]', '$_POST[subject]', '$_POST[message]')";
Don't forget to sanitise data first, as mentioned by bradgrafelman.