формы — Связывание файла .php с Blogger (его размещение)

Я пытаюсь создать контактную форму в Blogger. Виджет контактной формы по умолчанию существует и работает как шарм, но он предоставляет только 3 поля. Имя, адрес электронной почты и сообщение.
Мне нужно было добавить больше полей.
Добавление дополнительных полей к виджету невозможно, поскольку существуют определенные теги, которые принимает виджет, которые соответствуют трем полям «data: contactFormNameMsg» для имени, «data: contactFormEmailMsg» для электронной почты и «data: contactFormMessageMsg» для сообщение.

Итак, решение было создать мою собственную форму. Я не хотел использовать action = mailto, потому что я не хочу, чтобы выпрыгивали окна, запускались Outlook или Mail и открывались вкладки. Итак, мне пришлось использовать .php для контроля отправки формы.
Я написал свой .php код.
Поэтому, поскольку Blogger не предоставляет возможность размещения вашего файла .php, мне пришлось искать хостинг в другом месте.
Я гуглил это. И я был направлен на использование Google Диска как лучшего варианта размещения файла .php для Blogger. Так я и попробовал. Я попробовал описанные шаги Вот (и везде в Интернете), но, как говорится на этой странице (и это должно быть новое дополнение, потому что все другие неофициальные и, скорее всего, устаревшие сайты утверждают, что могут размещать свои файлы .php на Google Диске)

«Google Диск не поддерживает веб-ресурсы, использующие серверные языки сценариев, такие как PHP».

Я попробовал Dropbox. Но, как и ответили Вот, «Dropbox также не поддерживает выполнение ваших PHP-скриптов на стороне сервера». Все это должно быть новым, потому что каждый блоггер предлагает Dropbox и Google Drive в качестве лучших вариантов для размещения файлов .php.

Затем я попробовал 000webhost. Это сработало. Мой сценарий .php запустился, и я получил форму в своем электронном письме, НО (большое большое НО) при нажатии на кнопку, вызвавшую действие, и .php, пользователь также перенаправляется на первую страницу 000webhost.

Я попытался разместить его на другом бесплатном веб-хостинге, но случилось то же самое. В тот момент, когда пользователь нажал кнопку «Отправить» в моей форме, они были перенаправлены на первую страницу бесплатного веб-хостинга.

Я думал о добавлении встроенного HTML-кода php (? Php) — code — (/ php), но я не знал, как на него ссылаться.

Итак, у меня есть два вопроса:

  1. Как я могу сослаться на встроенную часть кода PHP, в моем HTML-код? Помните, мы в Blogger, это мало что разрешено. Я хочу сослаться на код php из части «form action =».

  2. Почему кнопка «Отправить» перенаправляет пользователя на первую страницу бесплатного веб-хостинга? Это «бесплатный сервис веб-хостинга» способ рекламы? Я имею ввиду, это реализовано в сервисе? Что-то не так с моим кодом?

Мой PHP-код это:

<?php
$errors = '';
$myemail = 'mymail@mymail.com';
if(empty($_POST['name'])  ||
empty($_POST['email']) ||
empty($_POST['message']))
{
$errors .= "\n Error: all fields are required";
}

$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
$email_address))
{
$errors .= "\n Error: Invalid email address";
}

if( empty($errors))
{
$to = $myemail;
$email_subject = "Contact form submission: $name";
$email_body = "You have received a new message. ".
" Here are the details:\n Name: $name \n Email: $email_address \n Message \n $message";

$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";

mail($to,$email_subject,$email_body,$headers);
}
?>

И HTML-часть, где я называю файл .php:

<form action='http://myusername.mywebhost.com/contact-form-handler.php' method='POST' name='contact-form'>

Так вот и все. Если кто-то сталкивался с подобной проблемой или нуждался в использовании обработчика форм .php в Blogger НЕДАВНО, вам очень поможет.

Большое спасибо заранее!

0

Решение

Что вы можете сделать, это отправить форму через AJAX на любой хост, который вы хотите — пользователь не будет перенаправлен туда. Вот пример кода, вы можете настроить его дальше

$("#theform").submit(function(e) {

e.preventDefault();

$.post('http://example.com/contact.php', $('#theform').serialize());

}

serialize используется для сбора данных из входных данных и отправки их по указанному URL.

Серийная документация AJAX

0

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

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