【问题标题】:Send data from HTML form to php将数据从 HTML 表单发送到 php
【发布时间】:2017-07-31 22:20:38
【问题描述】:

我正在尝试将数据从 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 电子邮件脚本。下面是问题的截图。

提交前:

提交后:

【问题讨论】:

  • 通过点击提交按钮?
  • 是的,我想要提交按钮来发送电子邮件。问题出在我的调试中,所有字段(电子邮件、消息等)都是空白的。
  • 哈哈哈哈哈。但我必须同意@Don'tPanic
  • 你的 php 代码是用 .php 还是 .html 编写的?
  • 首页是contact.php,第二页是email-script.php

标签: php html post


【解决方案1】:

只需在输出变量前添加 echo

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

【讨论】:

    【解决方案2】:

    变量不是空的,你只是忘记了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>
    

    【讨论】:

      【解决方案3】:

      此外,您可以使用$_SERVER['REQUEST_METHOD'] 来检查email-script.php 是否被post 请求访问,以避免直接访问文件时发生错误。

      只需用

      包围php脚本
      if ($_SERVER['REQUEST_METHOD'] == "POST") {
           // validate the fields, send the email, etc.
      }
      

      你可以接受下一个请求。

      您还应该在发送电子邮件之前验证这些字段,因此没有人可以向您发送空电子邮件。如果您想添加更多安全设置会话或使用谷歌验证码,这样就很难连续多次提交表单。

      【讨论】:

      • 我计划修剪空白并清理我的数据。这只是设置的第一步。我会试试这个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2019-08-02
      • 2013-08-14
      • 2012-01-28
      相关资源
      最近更新 更多