У меня есть вопрос/вопрос на моей странице. Прежде чем я внедрил код «submit», он проверит проверки. Теперь каждый раз, когда я нажимаю кнопку «Отправить», он переходит к моей странице «Отправлено сообщение», даже если я знаю, что он не будет проверять валидацию.PHP Неправильная форма электронной почты
Я проверил некоторые связанные ответы, но не мог получить ответы на этот ...
* Примечание: Удалены некоторые значения, чтобы добраться до главной точки
Главной PHP:
<section style="-webkit-flex-direction: column; flex-direction: column;">
<?php include '/home/ubuntu/workspace/commentform.php';?>
<h2>Questions & Concerns</h2><br>
<p><span class="error">* required field</span></p><br>
<form name="contactform" method="post" action="comment-handler.php">
Full Name: <input type="text" name="name" value="<?php echo $name;?>" style="width:22em">
<span class="error">* <?php echo $nameErr;?></span><br><br>
Phone Number: (xxx) xxx-xxxx <input type="text" name="phone" value="<?php echo $phone;?>" style="width:9.5em"><br><br>
E-mail: <input type="text" name="email" value="<?php echo $email;?>" style="width: 25em">
<span class="error">* <?php echo $emailErr;?></span><br><br>
Comment:<br><sub>*500 Character Maximum.</sub>
<textarea name="comment" size="500" maxlength="500" rows="10" column="50" style="width: 50em; height: 10em"><?php echo $comment;?></textarea><br><br>
<input type="submit" name="submit" value="Submit">
</form>
</section>
Форма Обработка ошибок
<?php
$nameErr = $phoneErr = $emailErr = $invoiceErr = "";
$name = $phone = $email = $invoice = $response = $comment = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["phone"])) {
$phone = "";
} else {
$phone = test_input($_POST["phone"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
Комментарий Handler-Form (подать действия):
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$invoice = $_POST['invoice'];
$callResponse = $_POST['callResponse'];
$textResponse = $_POST['textResponse'];
$emailResponse = $_POST['emailResponse'];
$comment = $_POST['comment'];
$content = "Name: $name \n\nPhone: $phone \n\nEmail: $email \n\nInvoice #: $invoice \n\nContact Preference(s):\nCall: $callResponse Text: $textResponse Email: $emailResponse \n\n Question/Concern:\n\n $comment";
ini_set('display_errors',1);
if(isset($_POST['submit'])){
$to = '[email protected]';
$subject = "New Question For Se7en Service!";
$txt = $content;
$headers = array("From: [email protected]", "Reply-To: $email");
$headers = implode("\r\n", $headers);
mail($to,$subject,$txt,$headers);
if(mail($to,$subject,$txt,$headers)) {
include '/home/ubuntu/workspace/sentMessage.php';
} else {
echo '<p>Message DID NOT Sent. Please Try Again.</p>';
}
}
?>
ли вы ожидать, что проверка произойдет между временем кнопку отправить щелкают и время отправки запроса на сервер или после отправки запроса на сервер? – Mike
Итак, когда он проверяет или не проверяет вообще? Где используется форма обработки ошибок? – chris85
Майк - между моментом нажатия кнопки «Отправить» и временем отправки запроса на сервер. @ chris85 В настоящее время это не подтверждается вообще. Это произошло до того, как я создал comment-handler.php и установил действие формы, равное этому. До того, как действие формы было равно « Php echo htmlspecialchars ($ _ SERVER [" PHP_SELF "]);?>", И работа с проверкой работала, обновляла экран при возникновении ошибок и показывала, какие входы имели ошибки. – blackRob4953