
К admin На 27-01-2025 at 4:50 pm
Форма обратной связи для сайта с отправкой на почту созданная нейросетью
Создание контактной формы, которая позволяет пользователям загружать и отправлять видеофайлы по электронной почте, включает в себя как frontend, так и backend код. Мы напишем HTML/CSS для формы и PHP для обработки загрузки файлов и отправки электронной почты.
<style> body { font-family: Arial, sans-serif; background-color: #f4f4f9; } .contact-form { width: 100%; max-width: 600px; margin: 50px auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .contact-form h2 { margin-bottom: 15px; color: #333; } .form-control { margin-bottom: 15px; } .form-control label { display: block; margin-bottom: 5px; color: #555; } .form-control input, .form-control textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; } .form-control input[type="file"] { padding: 3px; } .form-control button { background-color: #28a745; color: #fff; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; } .form-control button:hover { background-color: #218838; } </style>
Сначала давайте создадим HTML-форму с соответствующим стилем CSS.
<div class="contact-form">
<h2>Форма обратной связи</h2>
<form action="process_form.php" method="POST" enctype="multipart/form-data">
<div class="form-control">
<label for="name">Имя</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-control">
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-control">
<label for="message">Сообщение</label>
<textarea id="message" name="message" rows="4" required></textarea>
</div>
<div class="form-control">
<label for="video">Загрузить видео файл</label>
<input type="file" id="video" name="video" accept="video/*" required>
</div>
<div class="form-control">
<button type="submit">Отправить</button>
</div>
</form>
</div>
Теперь давайте создадим PHP-скрипт `process_form.php` для обработки отправки формы, проверки введенных данных, загрузки файла и отправки электронного письма с прикрепленным видеофайлом.
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Sanitize and validate input
$name = filter_input(INPUT_POST, 'name',);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$message = filter_input(INPUT_POST, 'message',);
if (!$name || !$email || !$message) {
echo "Invalid input.";
exit();
}
// File upload processing
if (isset($_FILES['video']) && $_FILES['video']['error'] === 0) {
$videoName = basename($_FILES['video']['name']);
$videoTempName = $_FILES['video']['tmp_name'];
$videoSize = $_FILES['video']['size'];
$videoType = mime_content_type($videoTempName);
// Verify video file type and size
$allowedTypes = ['video/mp4', 'video/x-msvideo', 'video/quicktime', 'video/x-matroska'];
$maxFileSize = 50 * 1024 * 1024; // 50MB
if (in_array($videoType, $allowedTypes) && $videoSize <= $maxFileSize) {
$uploadDirectory = 'uploads';
if (!is_dir($uploadDirectory)) {
mkdir($uploadDirectory, 0755, true);
}
$videoDestination = $uploadDirectory . '/' . uniqid('', true) . '.' . pathinfo($videoName, PATHINFO_EXTENSION);
if (move_uploaded_file($videoTempName, $videoDestination)) {
// Prepare the email
$to = 'ЗДЕСЬ ВАША ПОЧТА';
$subject = 'New Video Uploaded with the Contact Form';
$body = "Name: $name\nEmail: $email\nMessage: $message\n\nVideo Path: $videoDestination";
$headers = [
'From' => $email,
'Reply-To' => $email,
'X-Mailer' => 'PHP/' . phpversion()
];
// Send the email
if (mail($to, $subject, $body, $headers)) {
echo "Your message and video have been sent successfully.";
} else {
echo "Failed to send email.";
}
} else {
echo "Failed to move uploaded video.";
}
} else {
echo "Invalid video file or size too large.";
}
} else {
echo "No video file uploaded or an error occurred.";
}
}
?>
На этом пока все, кому нужно копируйте код, правильно размещайте на своем сайте и пользуйтесь!
Поделись:
Похожие сообщения