Я довольно новичок в кодировании, и я строю контактную форму, используя PHP. Я включил reCaptcha, который должен быть проверен. Если пользователь заполняет форму и нажимает кнопку отправки, не проверяя reCaptcha.
Форма сбрасывается, и пользователь должен будет заполнить все заново.
Как сохранить ввод, если reCaptcha не проверен и форма отправлена?
Я нашел здесь, чтобы использовать htmlspecialchars. Он работает, заменяя символы html, но пользователю все равно придется заполнять его снова, если они используют кавычки или <>.
Любой совет будет полезен в отношении мер безопасности XSS или SQL или, возможно, использования AJAX.
<label for="message"> Message:</label>
<textarea class="form-control" type="textarea" id="message"
name="message" maxlength="6000" rows="5" value="<?php echo
htmlspecialchars($message); ?>" required ></textarea>
Вот как у меня есть PHP
```
if(filter_has_var(INPUT_POST, 'submit'))
{
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
$phone = $_POST['phone'];
$mail = new PHPMailer;
// Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->SMTPDebug = 0;
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = EMAIL; // SMTP username
$mail->Password = PASS; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom($email, $name);
$mail->addAddress('mail.com', 'Joe User'); // Add a recipient
// Name is optional
$mail->addReplyTo($email); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Client Contact Email';
$mail->Body = '<h2>Contact Request</h2>
<h4>Name</h4><p>'.$name.'</p>
<h4>Email</h4><p>'.$email.'</p>
<h4>Message</h4><p>'.$message.'</p>
<h4>Phone</h4><p>'.$phone.'</p>';
if ($decgoogresp->success == true)
{
// Success
if(!$mail->send())
{
$msg = 'Message could not be sent.';
$msgClass = 'Mailer Error: ' . $mail->ErrorInfo;
} else {
$msg = 'Your email has been sent';
$msgClass = 'alert-success';
}
} else {
$msg = "Please check the Captcha";
$msgClass = 'alert-danger';
}
}