• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Formularz PHP - przestał działać

VPS Starter Arubacloud
0 głosów
144 wizyt
pytanie zadane 7 grudnia 2018 w PHP przez Kobson87 Nowicjusz (120 p.)
zmienione kategorie 7 grudnia 2018 przez Arkadiusz Waluk

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>';
    }
    }
    }
?>

1 odpowiedź

0 głosów
odpowiedź 7 grudnia 2018 przez niezalogowany
Masz skonfigurowane wszystko pod obsługę wysyłania mailów?
komentarz 7 grudnia 2018 przez Kobson87 Nowicjusz (120 p.)
Co znaczy "wszystko"? Jeśli coś poza wyżej wklejonym kodem trzeba zrobić, proszę o informację co to takiego.

Podobne pytania

+1 głos
0 odpowiedzi 186 wizyt
pytanie zadane 11 stycznia 2023 w PHP przez Tadeusz Kwoka Nowicjusz (170 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 3 października 2021 w PHP przez daredevill Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 179 wizyt
pytanie zadane 30 sierpnia 2019 w PHP przez Ania2019 Użytkownik (530 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...