当前位置: 首页 > 知识库问答 >
问题:

PHP和联系表单

翟奕
2023-03-14

我有麻烦为我的联系表单获取正确的php脚本。我设法让它电子邮件我,但它没有显示一个名字,电子邮件或文本在电子邮件。

PHP脚本

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = 'myemail@email.comm';
$subject = 'Hello';

mail ($to, $subject, $message, "From: " . $name);
echo "Your Message has been sent.";
?>

联系表单

<form role="form" action="contact.php">
<div class="form-group">
<label for="InputName">Name</label>
<input name="name" type="text" class="form-control" id="InputName" placeholder="Enter Name">
</div>

<div class="form-group">
<label for="InputEmail">Email Address</label>
<input name="email" type="email" class="form-control" id="inputEmail" placeholder="Enter email">
</div>

<div class="form-group">
<label for="InputText">Message</label>
<input name="message" type="text" class="form-control" id="InputText" placeholder="Enter Text">
</div>

<button name="submit" type="submit" class="btn btn-default">Send</button>
</form>

共有2个答案

荣俊
2023-03-14

表单需要属性

method="POST"

否则,浏览器默认为method=“get”,它在url中提交表单,例如http://example.com/default.php?name=first%20last&email=...

欧阳德运
2023-03-14

您使用了POST变量,但您的表单如下:

<form role="form" action="contact.php">

未定义POST方法。未定义方法时默认要获取的窗体。

因此,您需要将表单更改为

<form role="form" action="contact.php" method="post">

在您留下的评论中:

“我仍然有一个问题,不是给我他们输入的电子邮件,而是给我一个由托管公司创建的电子邮件,这是不好的。”

答:这很可能是因为您在代码中使用from:的方式,这是该人的姓名。邮件需要电子邮件地址。

替换:

mail ($to, $subject, $message, "From: " . $name);

与:

mail ($to, $subject, $message, $header);

并在$subject=“hello”;下添加以下内容

$header = "From: ". $name . " <" . $email . ">\r\n";

这样,您就可以在电子邮件中看到此人的姓名,同时有一个有效的“from”标题。

  • 有关邮件头的详细信息,请访问http://php.net/manual/en/function.mail.php。

附加说明:

我还建议您使用以下方法测试是否有任何字段为空:

if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']))
{
    // execute code
}

否则,任何人都可以发送一封没有任何信息的电子邮件。

您也可以像else{echo“请填写所有字段”;}那样向其中添加else{}

  • 这是一种非常基本的方法。
 类似资料:
  • 最后编辑:现在一切正常工作将在下面的工作代码,清理后像idealCastle说,并修复了一些语法错误,一切正常工作,因为它应该与javascript验证谢谢大家 超文本标记语言代码: Javascript文件: PHP文件:

  • 我正在为我的项目构建一个ajax/php联系表单,包含以下字段: 姓名(必填)、电子邮件(必填)、主题(必填)和网站(必填) 一切正常,现在唯一的问题是,如果用户没有在主题和或网站字段中键入任何内容,我收到的电子邮件显示这两个字段如下: 主题:(显示空白) 网址:(显示空白) 如果用户没有在我收到的电子邮件中键入任何内容,是否可能根本不显示这两个字段 名称:[用户名] 邮箱:[用户邮箱地址] 我只

  • 问题内容: 我正在尝试使用以下方法测试PHP是否可从Firebase托管工作: (index.html) (welcome.php) 每次尝试此操作时,浏览器都会继续尝试打开PHP文件,而不是对其进行处理。Firebase服务器托管上是否启用了简单的PHP以处理这种简单形式?如果我能以这种方式工作,那么我将正确构建表格,包括验证等。 谢谢, 问题答案: 从Firebase托管站点(重点是我): 我

  • 问题内容: 我想在我正在创建的网站上使用联系表格,但是PHP不是一个选择,因为客户端不希望使用它。是否有一种聪明的方法可以解决此问题,例如发送电子邮件参数(非标准参数)或使用外部联系表?是否有一些不使用广告且可以轻松修改为其他语言的好产品? 谢谢。 问题答案: 联系人表单有数百种可嵌入(最可能基于)的解决方案,使您能够使用PHP等服务器端语言来解决问题。只是一个快速的谷歌搜索会给你一些。 或者,您

  • 我有AMP中的HTML表单,带有POST操作;电子邮件的PHP文件使用Sendgrid API。我尝试了Json重定向的headers响应,但不起作用。 出于这个原因,我应用了JavaScript重定向(是的,我知道,这会为AMP验证生成错误,但我需要重定向到跟踪在线转换的感谢页面)。 PHP文件工作正常,所有电子邮件都是发送的,但没有JavaScript重定向,只有电子邮件发送的div成功或错误

  • 由于PHP非常糟糕,我决定在这里发表文章作为最后的手段。我想在通过PHP联系表单发送的电子邮件的消息正文中添加一个“who”变量。该表单适用于姓名、电子邮件和消息,但“谁”的输入我想成为电子邮件消息的一部分,作为一种方式来沟通谁被转介。 我尝试添加$who=$_request['who'];和$WHO连接到邮件线路一样,但两者都不起作用,后者甚至根本不发送电子邮件。