I am working on a website where you can provide contact details and submit it to a PHP page. These contact details will be sent to an email address using the native PHP mail()
function. However, everything seems fine and works with the following code:
<?php
$salutation = $_GET["salutation"];
$name = $_GET["name"];
$plan = $_GET["plan"];
$desc = $_GET["desc"];
$to = "example@email.com";
$subject = $desc;
$msg = "
<html>
<body>
<p>Test body</p>
</body>
</html>
";
$headers = "MIME-Version: 1.0
";
$headers .= "Content-Type: text/html; charset=ISO-8859-1
";
mail($to, $subject, $msg, $headers);
?>
When you submit the form, the end of the URL bar changes to:
page.php?salutation=dhr&name=Kees+van+Voorthuizen&plan=basic&desc=Test+Description
As I said, this works properly and no errors were thrown. But when I add an <input name="email" id="email" type="email">
to the contact details page inside the <form>
tag and I submit the form using my own email address, the server returns an HTTP error 503. PHP code using the email input field:
<?php
$salutation = $_GET["salutation"];
$name = $_GET["name"];
$email = $_GET["email"]; // <--- The only thing that has changed
$plan = $_GET["plan"];
$desc = $_GET["desc"];
$to = "example@email.com";
$subject = $desc;
$msg = "
<html>
<body>
<p>Test body</p>
</body>
</html>
";
$headers = "MIME-Version: 1.0
";
$headers .= "Content-Type: text/html; charset=ISO-8859-1
";
mail($to, $subject, $msg, $headers);
?>
The URL now ends in:
page.php?salutation=dhr&name=Kees+van+Voorthuizen&email=my%40email.com&plan=basic&desc=Test+Description
I suspect that the error is being thrown when I include a period ('.') inside the email field. I've tried manually changing the URL bar using my%40emailcom
instead of my%40email.com
and it worked. Notice that I removed the period between email
and com
.
Any ideas?