Как можно форму обратной связи отправить в html документе?

можете помочь как сделать так чтобы форма обратной связи 5dd3862601075603334461.png
отправлялось в этом Html документе 5dd38695a86ed899719037.png
<input type="hidden" name="project_name" value="1C Програмист">
		<input type="hidden" name="admin_email" value="golex@mail.ru">
		<input type="hidden" name="form_subject" value="Form Subject">
		<!-- END Hidden Required Fields -->
        <div class="contakt_wrappev">
        <h2 style="color:#06488a;
        margin:4px; text-align: center;">Задать вопрос</h2>
        <div class="inputs">
        <p><div class="gd"><strong>Имя</strong><div class="zf">*</div></div> <input type="text"style="margin-left: -37px;" class="inpu" name="Имя" required> </p><br>		
		<p><div class="gd"><strong>Email</strong><div class="zf">*</div></div> <input type="text" style="margin-left: -41px;" class="inpu" name="Email" required></p><br>

		<p><div class="gd" style="margin-right:164.5px;"><strong>Телефон</strong></div> <input type="text" class="inpu" style="margin-left:-46px;" name="Телефон" ></p><br>
	</div>
         <div class="aresd"><p><strong><div class="tesrs">Cобщение<div class="zf">*</div></div></strong></div>
       </p><textarea  class="textarea"name="сообщение" type="text" class="text" value="Message" required></textarea>
		</div>
	

		
		
		<button class="burs">Отправить сообщение</button>
</form><code lang="php">
<?php

$method = $_SERVER['REQUEST_METHOD'];

//Script Foreach
$c = true;
if ( $method === 'POST' ) {

	$project_name = trim($_POST["project_name"]);
	$admin_email  = trim($_POST["admin_email"]);
	$form_subject = trim($_POST["form_subject"]);

	foreach ( $_POST as $key => $value ) {
		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
			$message .= "
			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
			</tr>
			";
		}
	}
} else if ( $method === 'GET' ) {

	$project_name = trim($_GET["project_name"]);
	$admin_email  = trim($_GET["admin_email"]);
	$form_subject = trim($_GET["form_subject"]);

	foreach ( $_GET as $key => $value ) {
		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
			$message .= "
			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
			</tr>
			";
		}
	}
}

$message = "<table style='width: 100%;'>$message</table>";

function adopt($text) {
	return '=?UTF-8?B?'.Base64_encode($text).'?=';
}

$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/html; charset=utf-8" . PHP_EOL .
'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
'Reply-To: '.$admin_email.'' . PHP_EOL;

mail($admin_email, adopt($form_subject), $message, $headers );
<code lang="html">
<!DOCTYPE html>
<html lang="en">
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet"  href="style.css">
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<div class="container">
	<img src="img/aaa.png" class="img1" width="107px" height="30px">
	<hr>
	<h2>Добрый день</h2>
</div>	
</body>
</html>
</code>
</code>
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 2
На Авито спамить хотите?
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых - отсутствует открывающий тег формы, в котором должно быть прописано куда отправляются данные, то есть какой файл будет их принимать, ну и метод отправки.
Во вторых - если это html файл - весьма вероятно что в нем php код работать не будет, по умолчанию файлы html не обрабатываются интерпретатором, а выводятся "как есть", то есть все увидят ваш кусок кода как текст.

Ну и так, по мелочам:
- mail() не гарантирует отправку емэйла, только передает сообщение локальному smtp серверу, что будет дальше с сообщением абсолютно неизвестно. Для отправки почты есть более надежные скрипты, например phpMailer, нормально обрабатывающие все ошибки и способные работать с внешними smtp.
- зачем админскую почту получать из формы - загадка, просто пропишите ее в скрипте как переменную или константу, светить ее всем подряд совершенно не обязательно
-
$method = $_SERVER['REQUEST_METHOD']; ... if ( $method === 'POST' ) {...
зачем это переопределение из пустого в порожнее? Просто трата памяти.
- else if ( $method === 'GET' ) {... тоже не сильно понятно зачем. Если не пост, то мало вероятно что метод будет delete или update, совершенно ненужная проверка, тем более что отправлять крупный массив данных методом гет (например из поля комментария) - плохая идея. Кроме того, если я просто открыл страничку - это тоже метод гет, но ваших переменных там не будет, просто в лог посыпятся варнинги об отсутствии переменных.
- Код проверки переменных - отдельная грустная песня. Кроме того что есть filter_input, сама идея проверять переменные в цикле хреновая. Их у вас 4 штуки, все с разными требованиями, как по типам, так и по свойствам. Каждую надо проверить. Код станет длиннее, но гораздо более безопасным и читабельным.
- <img src="img/aaa.png"... пути к ресурсам обычно пишутся от корня сайта, для того чтобы ресурсы не зависели от пути где лежит сам скрипт (<img src="/img/aaa.png"...).

Самое главное вы так и не написали - что не работает то?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы