1

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

4

1 回答 1

0

要将代码添加到您的 PHP.Gt 应用程序,您可以使用 PHP.Gt 中的 Page Logic 对象。Page Logic 是在特定页面的上下文中执行的 PHP,它为页面代码提供了一个面向对象的入口点。

您提供的链接中的代码使用程序 PHP,因此需要放入一个类中才能使用。

附带说明一下,您的 HTML 表单不需要在action属性中包含任何内容。如果没有 action 属性,它将发布到当前页面,这是您的逻辑所在。

假设您当前的标记位于src/Page/contact.html,创建一个 PHP 文件/src/Page/contact.php并在下面添加基本的 Page Logic 类:

<?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 强制执行的关注点分离,但是您好,您的教程展示了如何使用 Page Logic 操作页面上的内容 - 这就是您可以输出的方式方法中的错误消息show_error

于 2015-02-11T11:48:55.080 回答