Oh, just noticed that you put the source, up. And guess what, that's what it is; register_globals:
In reply to:
if(empty($visitor) || empty($visitormail) || empty($notes )) {
To fix it: Ever occurance of $visitor, $visitormail and $notes needs to be changed to $_POST['visitor'], $_POST['visitoremail'] and so forth. This goes for ALL variables you're passing from your form. Same format.
Also, you might want to do some verification of values, too. Your script is HIGHLY subseptiable to being used as a spam bot. It's easy to fix: remove any \n's from email and subject:
$from = str_replace("\n", '' $from);
$subject = str_replace("\n", '' $subject);
You can get into more advanced filtering with preg_replace, but the above there will be sufficent to protect your script.
---
yerba# rm -rf /etc
yerba#