我在哪里放一个程序代码片段在PHP.Gt中运行?

时间:2015-02-11 11:34:15

标签: php email email-validation php.gt

我已保存本教程中的代码: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应该去哪里,是否需要以任何方式进行转换?

1 个答案:

答案 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方法中输出错误消息的方法。