我必须使用phpmailer使这个联系表单工作,但我需要完全分离php和html代码。我需要这个,因为我打算联系形式是一个index.html网页的最后一部分,所以我需要这个联系形式是.html,我知道如果我包括单行php代码在它,它必须是.php才能工作
问题的核心是如何删除这行php
<?php if ($msg != "") echo "$msg<br><br>"; ?>
并继续保持成功和错误的信息?
php代码如下:
<?php
$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
include_once "PHPMailer/PHPMailer.php";
include_once "PHPMailer/Exception.php";
include_once "PHPMailer/SMTP.php";
if (isset($_POST['submit'])) {
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];
if (isset($_FILES['attachment']['name']) && $_FILES['attachment']['name'] != "") {
$file = "attachment/" . basename($_FILES['attachment']['name']);
move_uploaded_file($_FILES['attachment']['tmp_name'], $file);
} else
$file = "";
$mail = new PHPMailer();
//if we want to send via SMTP
$mail->Host = "localhost";
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username = "kk@prisa.com";
$mail->Password = "1234";
$mail->SMTPSecure = "false"; //TLS
$mail->Port = 587; //587
$mail->addAddress('kk@prisa.com');
$mail->setFrom($email);
$mail->Subject = $subject;
$mail->isHTML(true);
$mail->Body = $message;
$mail->addAttachment($file);
if ($mail->send())
$msg = "Your email has been sent, thank you!";
else
$msg = "Please try again!";
unlink($file);
}
?>
下面是带有该死的php行的html代码:
<?php if ($msg != "") echo "$msg<br><br>"; ?>
<form method="post" action="index.php">
<input class="form-control" name="subject" placeholder="Subject..."><br>
<input class="form-control" name="email" type="email" placeholder="Email..."><br>
<textarea placeholder="Message..." class="form-control" name="message"></textarea><br>
<input class="form-control" type="file" name="attachment"><br>
<input class="btn btn-primary" name="submit" type="submit" value="Send Email">
</form>
发布于 2018-06-14 06:32:36
为此,您需要通过JavaScript访问其他文件。您可以使用JavaScript风格的AJAX,也可以使用jQuery (这通常要容易得多,但它确实会向您的项目添加依赖项)。另外,@smith是正确的,因为您可以使用whatever file extension you'd like让您的Apache服务器处理文件。
但是,如果您希望避免这种情况,可以创建一个onload事件,该事件向实际的PHP文件发出AJAX调用,然后返回所需的值,并将您的.php文件与.html文件分开。然后,响应值可以显示在电子邮件表单附近的元素中。
https://stackoverflow.com/questions/50846938
复制相似问题