将数据从HTML表单发送到PHP

3

我正在尝试将数据从HTML发送到PHP。这是我的HTML代码:

<div class="content">
    <form action="email-script.php" method="post">
      <div class="contact-form mar-top30">
        <label> <span>Full name</span>
        <input type="text" class="input_text" name="name" id="name"/>
        </label>
        <label> <span>Email</span>
        <input type="text" class="input_text" name="email" id="email"/>
        </label>
        <label> <span>Subject</span>
        <input type="text" class="input_text" name="subject" id="subject"/>
        </label>
        <label> <span>Message</span>
        <textarea class="message" name="feedback" id="feedback"></textarea>
        </label>
        <label>
                <input type="submit" class="button" value="Send" />
        </label>
      </div>
    </form>
  </div>

这是我的PHP代码:

<!DOCTYPE html>
<html>
<?php
    $email=$_POST["email"];
    $subject = $_POST["subject"];
    $message = $_POST["name"] . "Sent this email" . "\r\n" . $_POST["feedback"] . "Sent from this email address:" . $_POST["email"];
    mail("email@gmail.com", $subject, $message);
    //header("Location: index.html");
?>
Error, please contact Jack at (email@gmail.com) <br>
email: <?php $email ?> <br>
subject: <?php $subject ?> <br>
message: <?php $message ?> <br>
</html>

我认为最好的方法是通过POST方式来实现。如何在单击提交按钮时将HTML表单中的所有数据发送到PHP电子邮件脚本?下面是问题的截图。
提交前: enter image description here 提交后: enter image description here

1
通过点击提交按钮? - undefined
1
哈哈哈。lol。但我必须同意@Don'tPanic。 - undefined
你的 PHP 代码是写在 .php 还是 .html 文件中? - undefined
顶部页面是contact.php,第二个是email-script.php。 - undefined
如果你点击提交按钮,表单会将你重定向到动作属性的地址,并通过POST方法传递表单输入。我不明白你的问题是什么 :| - undefined
显示剩余2条评论
3个回答

2

在输出变量前加上echo即可。

email: <?php echo $email ?> <br>
subject: <?php echo $subject ?> <br>
message: <?php echo $message ?> <br>

1
变量不是空的,你只是忘记了使用 echo 命令输出它们,请按照以下方式修改代码:
<!DOCTYPE html>
<html>
<?php
    $email=$_POST["email"];
    $subject = $_POST["subject"];
    $message = $_POST["name"] . "Sent this email" . "\r\n" . $_POST["feedback"] . "Sent from this email address:" . $_POST["email"];
    mail("email@gmail.com", $subject, $message);
    //header("Location: index.html");
?>
Error, please contact Jack at (email@gmail.com) <br>
email: <?php echo $email ?> <br>
subject: <?php echo  $subject ?> <br>
message: <?php echo  $message ?> <br>
</html>

0
此外,您可以使用$_SERVER['REQUEST_METHOD']来检查是否通过POST请求访问了email-script.php,以避免直接访问文件时出现错误。
只需将php脚本包裹起来即可。
if ($_SERVER['REQUEST_METHOD'] == "POST") {
     // validate the fields, send the email, etc.
}

而且你的下一个请求不会有问题。

在发送电子邮件之前,您还应该验证字段,以防止别人给您发送空邮件。如果您想增加更多的安全性,设置一个会话或使用Google验证码,这样连续多次提交表单就更难了。


我计划去除空白字符并对我的数据进行清洗。这只是设置的第一步。我会尝试一下。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接