version | wrong | 404 | modify | email | checks
Version
Q: The script doesn't work. What's happening?
A: Be sure your website is running
PHP 4.1 or later.
A quick way to verify that is to go to
Netcraft and
use the "What's that site running?" feature to find out what your server is
running. A more robust route is to create a test page to run the
phpinfo() function.
Wrong
Q: Yeah, I'm running PHP 4. The script doesn't
work. What's wrong?
A: Have you made significant customizations to the script?
It's fine to make changes, but first get the script working in its simple
form. Put the "perfect.php" file in the same folder as your HTML
file. After you have the simple case working, go ahead and add
customizations and move things around.
404
Q: Why do I get a page not found (404) error when I click submit?
A: The "perfect.php" file must be accessible to your
browser. You can test this by opening the URL to your PHP file
in your browser. For example, if the URL for your HTML file is
http://www.yourdomain.com/xyz/contact.html and the
action for its form is perfect.php, then test
by opening http://www.yourdomain.com/xyz/perfect.php
in your browser. You should immediately be redirected to the thank
you page.
Modify
Q: What's with this "Cannot modify header information - headers
already sent..." warning?
A: This error is almost always the result of a previous error. A prior
error, like forgetting the ";" at the end of a PHP line, caused PHP to send out
a web page displaying an error message, and that web page has a header. The
"header()" command at the end of the PERFECT script then
fails because a header has already been sent even though the problem is not with the
"header()" command itself.
Q: The "Thank Your" page shows up correctly, but I don't get any
email?
A: If the PERFECT script properly redirects you to the confirmation web
page but fails to send an email, try replacing the the line:
mail($sendTo, $subjectLine, $msgBody, "From: $sendFrom");
with:
mail($sendTo, $subjectLine, $msgBody);
If that doesn't work, your server is probably configured to block the "mail()"
function (see:
The PHP Group and
SMTP).
Ask your web hosting company if they allow PHP mail.
Checks
Q: Why does PERFECT only return information for one checkbox?
A: If a web form has multiple checkboxes, users can select each checkbox individually.
However, no more than one value is returned if the checkboxes all have the same name. For
PERFECT to properly report all the options selected by the user, each option must have a different
name. For example:
<label><input type=checkbox name=cat>Cat</label>
<label><input type=checkbox name=dog>Dog</label>
The above checkboxes work because the values given for each of the "name" attributes are unique.