У меня есть форма на сайте клиентов, которая получает несколько форм, потому что посетитель продолжает нажимать кнопку отправки.Отключить кнопку отправки после проверки формы PHP
Я пытаюсь отключить кнопку отправки после того как все мои обязательные поля заполнены.
Но я проверить свою форму с PHP, и большинство из того, что я видел людей с помощью JavaScript или JQuery для проверки формы. Я хотел бы оставить его в PHP, если это возможно.
Вот моя форма HTML.
<form action="mail.php" method="post">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td><strong>Company Name:</strong></td>
<td><label><span style="display: none;">Company Name</span><input type="text" name="companyname" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> First Name:</strong></td>
<td><label><span style="display: none;">First Name</span><input type="text" name="firstname" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> Last Name:</strong></td>
<td><label><span style="display: none;">Last Name</span><input type="text" name="lastname" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> Street Address:</strong></td>
<td><label><span style="display: none;">Street Address</span><input type="text" name="address1" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong>Suite/Apt:</strong></td>
<td><label><span style="display: none;">Suite/Apt</span><input type="text" name="address2" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> City:</strong></td>
<td><label><span style="display: none;">City</span><input type="text" name="city" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> State:</strong></td>
<td><label><span style="display: none;">State</span><input type="text" name="state" size="2" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> Zip:</strong></td>
<td><label><span style="display: none;">Zip</span><input type="text" name="zip" size="4" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> Daytime Phone:</strong></td>
<td><label><span style="display: none;">Daytime Phone</span><input type="text" name="dayphone" size="30" /></label></td>
</tr>
<tr>
<td style="text-align: right;"><strong><span style="color: #990000;">*</span> Email Address:</strong></td>
<td><label><span style="display: none;">Email Address</span><input type="text" name="email" size="30" /></label></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submitButtonName" value="Submit Order" style="background-color: #012e63; color: white;" /></td>
</tr>
</table>
</form>
Вот мой почтовый сценарий.
<?php
if ($_POST['firstname']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['lastname']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['address1']=="")
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['city']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['state']=="")
{ Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['zip']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['dayphone']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
if ($_POST['email']=="")
{
Print("The following fields are required</h2>
<b>First Name<br>
Last Name<br>
Street Address<br>
City<br>
State<br>
Zip<br>
Daytime Phone<br>
Email Address</b><br><br>
<a href=\"javascript:history.go(-1)\">< Back</a></center>
</div>");
exit();
}
$title = 'My form submission';
$description = 'Mail';
$section = 'mail';
$cn = $_POST["companyname"];
$fn = $_POST["firstname"];
$ln = $_POST["lastname"];
$ad = $_POST["address1"];
$add = $_POST["address2"];
$ci = $_POST["city"];
$st = $_POST["state"];
$zi = $_POST["zip"];
$dp = $_POST["dayphone"];
$em = $_POST["email"];
$subject = "My form submissio";
$headers .= "From: ". $em;
$message .= "SHIPPING INFORMATION\n\n";
$message .= "Company Name: $cn \n";
$message .= "First Name: $fn \n";
$message .= "Last Name: $ln \n";
$message .= "Street Address: $ad \n";
$message .= "Suite/Apt: $add \n";
$message .= "City: $ci \n";
$message .= "State: $st \n";
$message .= "Zip: $zi \n";
$message .= "Daytime Phone: $dp \n";
$message .= "Email Address: $em ";
$useronea = "name";
$useroneb = "domain";
$useronec = "com";
$to = $useronea."@". $useroneb.".". $useronec;
$mail_sent = @mail( $to, $subject, $message, $headers);
echo "Thank you for your submission";
?>
Сессии и жетоны может быть лучший вариант http://www.phpro.org/tutorials/Preventing-Multiple-Submits.html –
Вы должны всегда проверять на стороне сервера/в PHP. Проверка javascript - это просто, чтобы улучшить работу пользователя. – jeroen
JS будет правильным способом справиться с этим. На стороне PHP это сложнее - вы можете ограничить количество запросов, но тогда вам нужно будет хранить временные метки для каждого пользователя, что делает все довольно сложным. –