我已保存本教程中的代码:http://myphpform.com/final-form.php,该代码应在表单提交时发送电子邮件。
我想在简单的联系页面中使用它。这是标记:
<main role="content">
<section>
<header>
<h1>Contact</h1>
</header>
<section role="contact-us">
<form action="/Script/contact.php" method="post">
<label for="name">Full name</label>
<input type="text" name="yourname" placeholder="Name..." id="name">
<label for="email" name="email">Email address</label>
<input type="text" placeholder="you@email.com" id="email">
<textarea placeholder="Your comments..." rows ="5" name="comment-text" name="comments"></textarea>
<input type="submit" value="Send" name="submit">
</form>
</section>
</section>
</main>
PHP应该去哪里,是否需要以任何方式进行转换?
答案 0 :(得分:0)
要在PHP.Gt应用程序中添加代码,请在PHP.Gt中使用Page Logic对象。页面逻辑是在特定页面的上下文中执行的PHP,并为页面代码提供面向对象的入口点。
您提供的链接中的代码使用过程PHP,因此需要将其放入类中才能使用。
作为旁注,您的HTML表单不需要在action
属性中包含任何内容。如果没有action属性,它将发布到当前页面,这是您的逻辑所在。
假设您当前的标记位于src/Page/contact.html
,请在/src/Page/contact.php
创建一个PHP文件并添加下面的简单页面逻辑类:
<?php
namespace App\Page;
class Contact extends \Gt\Page\Logic {
public function go() {
}
}#
文档中提供了对HTML文件(页面浏览量)和PHP代码(页面逻辑)之间链接的说明:https://github.com/BrightFlair/PHP.Gt/wiki/Pages
放置在go()
方法中的任何逻辑都将在呈现页面之前执行,因此这正是您需要从发布的链接放置电子邮件脚本的位置。
对于使其面向对象所需的代码会有一些操作,但这里是您尝试实现的简化示例:
go() {
if(!isset($_POST["submit"])) {
// If the form isn't submitted, do not continue.
return;
}
mail("your-email@example.com", "Contact form message", $_POST["comment-text"]);
header('Location: /thanks');
}
程序示例中发布的函数可以简单地作为私有方法附加到Logic对象,但我会借此机会使用适当的验证技术(如本机filter_var函数)更新它们。
示例中的show_error
函数回应了PHP中的HTML,这违反了PHP.Gt强制执行的强separation of concerns,但Hello, you tutorial显示了如何操作页面上的内容使用页面逻辑 - 这是您在show_error
方法中输出错误消息的方法。