• 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
47 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 ForKing Bywalec (2,570 p.)
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
0 odpowiedzi 24 wizyt
pytanie zadane 4 dni temu w PHP, Symfony, Zend przez Olek Szymański Użytkownik (920 p.)
0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 1 listopada 2018 w PHP, Symfony, Zend przez marek90552 Początkujący (430 p.)
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 7 października 2018 w PHP, Symfony, Zend przez willet2 Początkujący (370 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

59,149 zapytań

104,559 odpowiedzi

216,352 komentarzy

31,538 pasjonatów

Przeglądających: 310
Pasjonatów: 10 Gości: 300

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.

...