Cześć, mam takie pytanko czy do zrobienia formularza zgłoszeniowego, który będzie przesyłał wypełniony formularz na maila, trzeba instalować jakieś dodatkowe rzeczy typu PHPMailer, albo importować inne biblioteki PHP?
Nie siedzę jeszcze zbyt mocno w back-endzie, więc wziąłem na szybko gotowca z yt i przerobiłem pod swoje wymagania, tylko jest problem taki, że przed jak i po przerobieniu ten formularz się nie wysyła.
<form action="../javascript/message.php">
<div class="pole_form" id="polowa">
<div class="pole">
<input type="text" id="imie_lub_nick" name="nick">
<label class="opis_form">Imię lub nick</label>
</div>
</div>
<div class="pole_form" id="polowa">
<div class="pole">
<input type="text" id="e_mial" name="mail">
<label class="opis_form">Adres e-mail</label>
</div>
</div>
<div class="pole_form">
<div class="pole">
<input type="text" id="nazwa_ekipy_gupy" name="nazwa">
<label class="opis_form">Nazwa twojej ekipy lub grupy społeczności</label>
</div>
</div>
<div class="pole_form">
<div class="pole">
<input type="text" id="link_do_ekipy_gupy" name="link">
<label class="opis_form">Link do grupy społecznościowej (opcjonalne)</label>
</div>
</div>
<div class="pole_radio">
<label class="opis_form">Średnia stała aktywność na kanale</label>
<div class="radio_buttons">
<div class="radio_box">
<input type="radio" id="10" name="10osob" value="10osob">
<label for="10">10 osób</label>
</div>
<div class="radio_box">
<input type="radio" id="15" name="15osob" value="15osob">
<label for="15">15 osób</label>
</div>
<div class="radio_box">
<input type="radio" id="20" name="20osob" value="20osób">
<label for="20">20 osób</label>
</div>
<div class="radio_box">
<input type="radio" id="pow20" name="pow20osob" value="pow20osób">
<label for="pow20">Powyżej 20 osób</label>
</div>
</div>
</div>
<div class="pole_form">
<div class="pole">
<input type="date" required pattern="\d{4}-\d{2}-\d{2}" name="data">
<label class="opis_form">Wybierz datę rozmowy z administracją</label>
</div>
</div>
<div class="pole_form">
<div class="pole" id="wiadomość">
<textarea name="wiadomosc"></textarea>
<label class="opis_form">Dodatkowe inforamcje</label>
</div>
</div>
<div class="button_form">
<div class="button_space">
<button type="submit" id="Polacz_z_serwerem_red">Wyślij</button>
<span>Wysyłanie...</span>
</div>
</div>
</form>
const form = document.querySelector("form"),
statusTxt = form.querySelector(".button_form .button_space span");
form.onsubmit = (e)=>{
e.preventDefault();
statusTxt.style.color = "#000";
statusTxt.style.display = "inline-block";
statusTxt.innerText = "Wysyłanie...";
let xhr = new XMLHttpRequest();
xhr.open("POST", "https://zeucore.pl/javascript/message.php", true);
xhr.onload = ()=>{
if(xhr.readyState == 4 && xhr.status == 200){
let response = xhr.response;
if(response.indexOf("Wypełnij wymagane pola! 'Imię lub nick, e-mail, nazwa ekipy/grupy, data'") != -1 || response.indexOf("Podaj prawidłowy adres email!") != -1 || response.indexOf("Coś poszło nie tak, formularz nie został wysłany!") != -1){
statusTxt.style.color = "#cc0000";
}else{
form.reset();
setTimeout(()=>{
statusTxt.style.display = "none";
}, 3000);
}
statusTxt.innerText = response;
}
}
let formData = new FormData(form);
xhr.send(formData);
}
<?php
$nick = htmlspecialchars($_POST['nick']);
$mail = htmlspecialchars($_POST['mail']);
$nazwa = htmlspecialchars($_POST['nazwa']);
$link = htmlspecialchars($_POST['link']);
$osob10 = htmlspecialchars($_POST['10osob']);
$osob15 = htmlspecialchars($_POST['15osob']);
$osob20 = htmlspecialchars($_POST['20osob']);
$pow20osob = htmlspecialchars($_POST['pow20osob']);
$data = htmlspecialchars($_POST['data']);
$wiadomosc = htmlspecialchars($_POST['wiadomosc']);
if(!empty($nick) && !empty($mail) && !empty($nazwa)){
if(filter_var($mail, FILTER_VALIDATE_EMAIL)){
$receiver = "[email protected]";
$subject = "From: $nick <$mail>";
$body = "Name: $nick\nEmail: $mail\nNazwa: $nazwa\nLink: $link\nŚrednia osób: $osob10 $osob15 $osob20 $pow20osob\nData: $data\n\nWiadomość: $wiadomosc";
$sender = "From: $mail";
if(mail($receiver, $subject, $body, $sender)){
echo "Formularz został wysłany!";
}else{
echo "Coś poszło nie tak, formularz nie został wysłany!";
}
}else{
echo "Podaj prawidłowy adres email!";
}
}else{
echo "Wypełnij wymagane pola! 'Imię lub nick, e-mail, nazwa ekipy/grupy, data'";
}
?>