Witajcie,
Mam formularz PHP z 2014 roku, wiem przestarzały. Ale przestał w niedawnym czasie działać. Jestem laikiem w tych kwestiach i korzystałem z prostych wzorców z sieci. Niestety w tej chwili, bez żadnych ingerencji w kod, formularz poprostu nie działa. Pokazuje mi błąd "Wiadomość nie została wysłana" ale nie wiem dlaczego. Nie mam takiej wiedzy by zdebuggować kod. Możecie mi pomóc, jak przerobić kod, by zaczęło to działać? Być może zmieniły się warunki u hostingodawcy i dlatego to się posypało. Strona jest kodowana jeszcze w ISO-8859-2
Oto mój kod wywołujący formularz na stronie:
<form action="index.php?s=mainformularz" method="post" id="mainform">
<input id="mailing1" name="mainimie" type="text" class="mailing1" value="Imię i nazwisko" onblur="if(this.value=='')this.value='Imię i nazwisko';" onfocus="if(this.value=='Imię i nazwisko')this.value='';">
<input id="mailing2" name="mainmail" type="text" class="mailing2" value="Twój adres e-mail" onblur="if(this.value=='')this.value='Twój adres e-mail';" onfocus="if(this.value=='Twój adres e-mail')this.value='';">
<textarea class="koment" name="mainwiadomosc" type="text" value="Treść zapytania" onblur="if(this.value=='')this.value='Treść zapytania';" onfocus="if(this.value=='Treść zapytania')this.value='';">Treść zapytania</textarea>
<input type="hidden" name="mainsubmit" value="wyslano">
<input type="submit" name="mainsubmit" class="wyslij" value="Wyślij">
</form>
I kod realizujący PHP:
<?php
$twojemail = "mojmail@gmail.com"; //na jaki adres ma zostać wysłana treść z formularza (tymczasowy do testu)
$blad=''; // początkowo liczba błędów musi wynosić 0
if (isset($_POST['mainsubmit'])) {
// filtrowanie treści wprowadzonych przez użytkownika
$mainimie = htmlspecialchars(stripslashes(strip_tags(trim($_POST["mainimie"]))), ENT_QUOTES);
$mainmail = htmlspecialchars(stripslashes(strip_tags(trim($_POST["mainmail"]))), ENT_QUOTES);
$mainwiadomosc = htmlspecialchars(stripslashes(strip_tags(trim($_POST["mainwiadomosc"]))), ENT_QUOTES);
// sprawdzamy czy wszystkie pola zostały wypełnione
if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $mainmail)) {
$blad++;
echo '<p class="alert">Niepoprawny format adresu <strong>E-mail</strong></p>';
}
if (!$mainimie | $mainimie == "Imię i nazwisko") {
$blad++;
echo '<p class="alert">Nie wpisano <strong>Imienia i nazwiska</strong></p>';
}
if (!$mainwiadomosc | $mainwiadomosc == "Treść zapytania") {
$blad++;
echo '<p class="alert">Nie wpisano <strong>Treści zapytania</strong></p>';
}
elseif (strlen($mainwiadomosc) < 20) {
$blad++;
echo '<p class="alert"><strong>Treść zapytania</strong> jest za krótka - min. 20 znaków</p>';
}
if ($blad!=0) {
echo '<br><p>Wróć do <a href="javascript: history.go(-1)">poprzedniej strony</a> i spróbuj jeszcze raz.</p>';
}
// jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana
if ($blad==0) {
// GEPOL mail potwierdzający zapytanie
// niezbędne nagłówki do wyświetlania wiadomości HTML
$naglowki = "MIME-Version: 1.0" . "\r\n";
$naglowki .= "Content-type:text/html;charset=iso-8859-2" . "\r\n";
$naglowki .= 'From: <'.$mainmail.'>' . "\r\n";
// całkowita treść wiadomości
$mainwiadomosc = nl2br($mainwiadomosc);
$trescmaila ="
<html>
<p>Zapytanie ze strony internetowej GEPOL:</p>
<p><strong>Nadawca:</strong><br /> $imie</p>
<p><strong>Adres e-mail:</strong><br /> $mail</p>
<p><strong>Treść:</strong><br /> $wiadomosc</p>
</html>";
// wysyłanie wiadomości e-mail
$wynik = mail($twojemail, 'Zapytanie ze strony internetowej GEPOL', $trescmaila, $naglowki);
// UŻYTKOWNIK mail potwierdzający zapytanie
// niezbędne nagłówki do wyświetlania wiadomości HTML
$naglowki2 = "MIME-Version: 1.0" . "\r\n";
$naglowki2 .= "Content-type:text/html;charset=iso-8859-2" . "\r\n";
$naglowki2 .= 'From: <'.$twojemail.'>' . "\r\n";
// całkowita treść wiadomości do użytkownika
$mainwiadomosc = nl2br($mainwiadomosc);
$trescmaila2 ="
<html>
<p>Witaj $imie,</p>
<p>Dziękujemy za przesłanie zapytania o treści:</p>
<p><strong>Nadawca:</strong><br /> $mail</p>
<p><strong>Treść:</strong><br /> $wiadomosc</p>
<p>Z poważaniem<br />Zespół GEPOL</p>
</html>";
// komunikat potwierdzający wysłanie wiadomości bądź nie
if ($wynik) {
echo '<h1>Dziękujemy za złożenie zapytania.</h1><br><p>Wróć do <a href="javascript: history.go(-1)">poprzedniej strony</a>.</p>';
mail($mainmail, 'Zapytanie ze strony internetowej GEPOL', $trescmaila2, $naglowki2);
}
else {
echo '<h1>Wiadomość nie została wysłana.</h1><br><p>Wróć do <a href="javascript: history.go(-1)">poprzedniej strony</a> i spróbuj jeszcze raz.</p>';
}
}
}
?>