электронная почта — куда поместить фрагмент процедурного кода для запуска в 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

Решение

Чтобы добавить код в ваше приложение PHP.Gt, вы используете объект Page Logic в PHP.Gt. 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-файлами (Page Views) и PHP-кодом (Page Logic) доступно в документации: 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');

}

Функции, опубликованные в процедурном примере, могут быть просто присоединены к объекту логики как частные методы, хотя я бы воспользовался этой возможностью, чтобы обновить их, используя надлежащие методы проверки, такие как нативный filter_var функция.

show_error функция в примере повторяет HTML из PHP, который против сильного разделение интересов обеспечивается PHP.Gt, но Здравствуйте, урок показывает, как с содержимым страницы можно манипулировать с помощью Page Logic — так вы можете вывести сообщение об ошибке в show_error метод.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector