Intereting Posts
Проверьте, совпадает ли изображение Как использовать две разные версии PHP на одном сервере Плагин CKEditor Snippet не выделяет синтаксис в структуре yii2 Кодировка символов, не объявленная в html документе AJAX (prototype / php) получает частичные обновления статуса во время выполнения сценария Использование PHP / Apache для ограничения доступа к статическим файлам (html, css, img и т. Д.) Включить константу в строку без конкатенации У меня есть 2 даты в PHP, как я могу запустить цикл foreach, чтобы пройти через все эти дни? Откройте класс Auth, чтобы разрешить вход в систему через facebook, google, твиттер и т. Д. -> так же, как SO Как включить поддержку PHP в Netbeans? Календар Google 403 Запрещенный обмен PHP-сервером на сервер PHP: escape filename как linux делает отправить массив значений через сообщение ajax CURL: отправка изображений с помощью границы в REST API Как PHP-пароль генерирует соль?

Ошибка с формой PHP – Нефункциональный

Попытка заставить эту форму работать. Выложили код целиком.

Это не работает, т. contactError.html Если все поля пустые, это прямо на странице php_mailer_form.php странице php_mailer_form.php . (опубликовали php_mailer_form.php внизу.

Он работает, если все поля заполнены.

Если пустой или частично заполненный, он не вызывает никаких сообщений об ошибках. Просто contactError.html прямо к contactError.html .

Что мне здесь не хватает? Я пробовал так много разных вариантов выполнения этой работы, и ни один из них на сегодняшний день не имеет.

 <html lang="en"> <head> <meta charset="utf-8"> <title> Contact</title> <style type="text/css"> .error { color: #FF0000; } </style> </head> <body> <?php session_start(); //allows use of session variables if ($_SERVER["REQUEST_METHOD"] == "POST") { if (!isset($_POST["first-name"])) { $firstNameErr = "First name is required"; } else { $first_name = test_input($_POST["first-name"]); } if (!isset($_POST["last-name"])) { $lastNameErr = "Last name is required"; } else { $last_name = test_input($_POST["last-name"]); } if (!isset($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); } if (!isset($_POST["message"])) { $messageErr = "Message is required"; } else { $message = test_input($_POST["message"]); } if(isset($first_name) && isset($last_name) && isset($email) && isset($message)) { $_SESSION['first_name'] = $first_name; $_SESSION['last_name'] = $last_name; $_SESSION['email'] = $email; $_SESSION['message'] = $message; header("Location: php_mailer_form.php"); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <div class="ui container"> <div class="ui segment"> <div> <div class="ui fluid five item tabular menu"> <a class="item" href="index.html">Home</a> <a class="item" href="about.html">About</a> <a class="item" href="rooms.html">Rooms Info & Rates</a> <a class="item" href="book.html">To Book</a> <a class="item" href="contact.html">Contact</a> </div> </div> <div class="ui two column stackable grid"> <div class="ten wide column"> <form class="ui form" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <div class="field"> <label>First Name</label> <input name="first-name" id="first-name" placeholder="First Name" type="text"> <?php if(isset($firstNameErr)) print ('<span class="error">* ' . $firstNameErr . '</span>'); ?> </div> <div class="field"> <label>Last Name</label> <input name="last-name" id="last-name" placeholder="Last Name" type="text"> <?php if(isset($lastNameErr)) print ('<span class="error">* ' . $lastNameErr . '</span>'); ?> </div> <div class="field"> <label>Email</label> <input name="email" id="email" placeholder="Email" type="email"> <?php if(isset($emailErr)) print ('<span class="error">* ' . $emailErr . '</span>'); ?> </div> <div class="field"> <label>Message</label> <textarea rows="2" placeholder="Please type in your message" name="message" id="message"></textarea> <?php if(isset($messageErr)) print ('<span class="error">* ' . $messageErr . '</span>'); ?> </div> <button class="ui button" type="submit">Submit</button> </form> </div> <div class="six wide column"> <br><br> <img class="ui centered large bordered rounded image" src="images/tobereplaced.jpg"> </div> </div> </div> <div class="ui two column grid"> <div class="ui left aligned "> <p>Left Footer Stuff Here</p> </div> <div class="ui right aligned"> <p>Right Footer Stuff Here</p> </div> </div> </div> </body> </html> 

Вот php_mailer_form.php

 <?php session_start(); $first_name = $_SESSION['first-name']; $last_name = $_SESSION['last-name']; $email = $_SESSION['email']; $message = nl2br($_SESSION['message']); require 'PHPMailerAutoload.php'; $mail = new PHPMailer; //$mail->SMTPDebug = 3; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'host_specified'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'email_specified'; // SMTP username $mail->Password = 'password_specified'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; $mail->addReplyTo( $email, $first_name ); $mail->addAddress( $email, $first_name ); $mail->addAddress( 'email_specified', 'Staff' ); $mail->From = 'email_specified'; $mail->FromName = 'Staff'; $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Hotel Room Request'; $mail->Body = $message; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; if(!$mail->send()) { header('location: url/contactError.html'); } else { header('location: url/contactResult.html'); } 

Не используйте isset() чтобы проверить, заполнено ли поле формы. Если поле формы пустое, оно будет установлено в пустую строку при отправке формы и if (!isset($_POST['fieldname'])) не обнаружит этого. Вместо этого используйте empty() :

 if (empty($_POST['first-name'])) { $firstNameErr = "First name is required"; } else { $first_name = test_input($_POST["first-name"]); }