Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有echo的phpmailer联系人表单将不带php代码的确认消息提交到html表单中_Php_Html_Phpmailer - Fatal编程技术网

带有echo的phpmailer联系人表单将不带php代码的确认消息提交到html表单中

带有echo的phpmailer联系人表单将不带php代码的确认消息提交到html表单中,php,html,phpmailer,Php,Html,Phpmailer,我使用phpmailer使这个联系人表单工作,但是我需要完全分离php和html代码。我之所以需要它,是因为我希望联系人表单是index.html网页的最后一部分,所以我需要这个联系人表单是.html,我知道如果我在其中包含一行php代码,它必须是.php才能工作 问题的核心是如何删除这行php <?php if ($msg != "") echo "$msg<br><br>"; ?> 并且一直是成功和错误的信息 下面是php代码: <?php

我使用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>






要做到这一点,您需要通过JavaScript访问其他文件。您可以使用JavaScript风格的AJAX,也可以使用jQuery(这通常要简单得多,但它确实为您的项目添加了一个依赖项)。否则@smith是正确的,因为您可以使用它来创建Apache服务器进程文件


但是,如果要避免这种情况,请创建一个onload事件,该事件触发对实际PHP文件的AJAX调用,然后返回所需的值,并将.PHP文件与.html文件分开。然后,响应值可以显示在电子邮件表单附近的元素中。

如果不想在电子邮件中包含echo语句,请删除它?“如果我在其中包含一行php代码,它必须是.php才能工作”没有文件扩展名意味着什么,如果您想通过php解析器运行
*.zzzzzzz
,您可以。如果您想在*.html文件中使用php,请将其作为一个文件进行解析。您能再解释一下为什么要将其转换为一个.html文件吗?@Curious13如果我删除echo语句,我将没有确认消息。@DonCarlosII在本教程之后,我终于找到了目标: