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

Formularz PHP - przestał działać

0 głosów
56 wizyt
pytanie zadane 7 grudnia 2018 w PHP, Symfony, Zend 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

0 głosów
3 odpowiedzi 81 wizyt
pytanie zadane 30 sierpnia w PHP, Symfony, Zend przez Ania2019 Początkujący (440 p.)
0 głosów
1 odpowiedź 65 wizyt
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

67,244 zapytań

114,206 odpowiedzi

242,097 komentarzy

45,647 pasjonatów

Przeglądających: 369
Pasjonatów: 14 Gości: 355

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...