也许您想为拥有的客户创建“请求报价”或“联系我们”表单,但不知道如何将信息从用户那里获取给您的客户。
使用PHP的mail()函数,我们可以轻松地将用户输入的数据发送到客户的电子邮件地址。
假设我们有一个带有以下标记的联系表:
<form action="send.php" method="post" name="contactForm">
Name: <input type="text" name="name" /> <br />
Phone Number: <input type="text" name="phone" /> <br />
Email Address: <input type="text" name="email" /> <br />
<input type="submit" value="Submit!" />
</form>
<form>元素中的'action'属性是按下提交按钮时发生的事情。
在这种情况下,提交表单后,它将加载“ send.php”。
“方法”属性是将表单数据发送到操作页面的方式(在我们的示例中为send.php)。 有两种选择:
1)POST-所有名称值对都在请求的消息正文中提交,在浏览器的位置栏中看不到。 POST字符串的大小没有限制。
2)GET-所有名称值对都作为字符串输入到浏览器的位置栏中。 GET字符串的大小受到限制,并且提交表单时可以使用的字符有限。
总而言之,POST是从表单发送数据的安全方法。 处理敏感信息(例如密码,信用卡号,电子邮件地址等)时,应使用它。GET的安全性较低,但在涉及产品和类别的CMS设计中被广泛使用。 通常在浏览产品时在网上商店使用情况中看到。
此时,关于表单的另一件重要的事情是确保我们所有的文本字段都具有唯一的“名称”属性。 使用相关的命名约定使之保持简单。
现在,提交表单后,使用“ post”方法将用户输入表单的值发送到“ send.php”。 我们的PHP脚本将具有以下内容:
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$subject = "New Contact Request Submission";
$message = "Name: " . $name . "\n\n" .
"Phone Number: " . $phone . "\n\n" .
"Email Address: " . $email;
$to = "youremail@yourdomain.com";
$headers = 'From: ' . $name . '<' . $email . '>' . "\n" .
'Reply-To: ' . $email . "\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
header("Location: thankyou.html");
我们在'send.php'文件中所做的第一件事是在POST内容之外创建变量。
我发现它有助于使事情更有条理。
$ subject变量包含将显示为电子邮件主题的消息。
$ message变量包含消息正文将包含的内容。 在我们的例子中,它将输出如下:
-----------------------------------
姓名:约翰尼·苹果籽
电话号码:555-555-5555
电子邮件地址:someone@somewhere.com
-----------------------------------
每个\ n都是换行符,类似于HTML的<br />标记。 是的,'\ n'应该放在字符串的内部,而不是字符串的外部,这是PHP脚本编写者常见的新手错误。
$ to变量包含要将电子邮件发送到的电子邮件地址。
$ headers变量包含有关如何发送电子邮件,回复电子邮件地址是什么等信息。
现在,我们看到PHP执行了mail()函数。 它获取我们的数据并将其发送给收件人。
最后,执行脚本后,我们会将用户重定向到登录页面。 在此示例中,将带到“ thankyou.html”。
就是这样。 我希望这有助于你们中的一些人更好地了解静态网站如何获得一些动态功能的一些基本功能。
请注意,这是一个基本教程。 如果您在大规模环境中使用此脚本,或者想在脚本中实践安全性,则在发送表单之前,需要先对其进行验证。 您也可以调整send.php脚本以要求输入验证码等,以阻止垃圾邮件。
问候,
马修·卡特米尔
From: https://bytes.com/topic/php/insights/905167-how-send-email-using-php-beginners