1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Formularz kontaktowy (HTML + PHP)

Dyskusja w 'Hosting Business Cloud' rozpoczęta przez użytkownika mrexo, 14 Lipiec 2017.

  1. mrexo

    mrexo Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    0
    Witam mam problem z działaniem formularza kontaktowego. W momencie wrzucenia go na stronę wszystko działało do czasu - przestały przychodzić maile na wskazany adres.
    Siedzę nad tym dłuższy czas i nie wiem co mam robić i zostałem skierowany przez infolinię do Państwa

    Poniższa część kodu znajduje się w pliku index.html i odwołuje się do mail.php
    HTML:
                   <div class="row">
                      <form method="post" name="contactform" action="mail.php">
                        
                          <div class="col-sm-6">
                            <div class="form-group">
                              <input type="text" name="name" id="name" class="form-control" placeholder="* Imię i nazwisko / Nazwa firmy">
                             </div>
                            </div>
                                    
                           <div class="col-sm-6">
                            <div class="form-group">
                             <input type="text" name="email" id="email" class="form-control" placeholder="* Adres e-mail">
                             </div>
                            </div>
                            
                            <div class="col-sm-6">
                              <select id="subject" name="subject" class="form-group form-control">
                                <option value="" selected disabled>Wybierz temat</option>
                                <option>Wycena przewozu</option>
                                <option>Oferta</option>
                                <option>Zapytanie o współpracę</option>
                                <option>Inny temat</option>
                               </select>
                              </div>
                              
                            <div class="col-sm-6">
                            <div class="form-group">
                             <input type="text" name="tel" id="tel" class="form-control" placeholder="* Numer telefonu">
                             </div>
                            </div>
                                    
                           <div class="col-sm-12">
                            <div class="textarea-message form-group">
                              <textarea name="message" id="message" class="textarea-message form-control" placeholder="* Wiadomość" rows="5"></textarea>
                              </div>
                             </div>
                       <div>
                           <p><small>* Pole obowiązkowe</small></p>
                       </div>
                        <div class="text-center">     
                           <button type="submit" name="submit" value="Send message" class="button button-style button-style-dark button-style-icon fa fa-long-arrow-right text-center">Wyślij</button>
                         </div>
                          
                      </form>
                      
                    </div>
    Kod - mail.PHP
    PHP:
    <!DOCTYPE html>
    <html lang="pl">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="PL">
        <!-- Main CSS Stylesheet -->
        <link rel="stylesheet" type="text/css" href="css/style.css">
        
        <!-- Google Web Fonts  -->
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:400,300,500,600,700">

    </head>
    <body>

    <?php

    $twojemail 
    "moj-adres-email"//na jaki adres ma zostać wysłana treść z formularza
    $blad=0;

    if (isset(
    $_POST['submit'])) {

                
    // filtrowanie treści wprowadzonych przez użytkownika
                
    $temat "Formularz kontaktowy"// temat wiadomości
                
    $name htmlspecialchars(stripslashes(strip_tags(trim($_POST["name"]))), ENT_QUOTES);
                
    $email htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
                
    $message htmlspecialchars(stripslashes(strip_tags(trim($_POST["message"]))), ENT_QUOTES);
                
    $subject htmlspecialchars(stripslashes(strip_tags(trim($_POST["subject"]))), ENT_QUOTES);
                
    $tel htmlspecialchars(stripslashes(strip_tags(trim($_POST["tel"]))), ENT_QUOTES);

                
    // sprawdzamy czy wszystkie pola zostały wypełnione
                
    if (!$name) {
                    
    $blad++;
                    echo 
    '<p class="blad">Proszę wpisać swoje imię.</p>';
                }
                if (!
    $email) {
                    
    $blad++;
                    echo 
    '<p class="blad">Proszę wpisać swój adres e-mail.</p>';
                }
                if (!
    $message) {
                    
    $blad++;
                    echo 
    '<p class="blad">Proszę wpisać treść wiadomości.</p>';
                }
                
                
    // jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana
                
    if ($blad == 0) {

                    
    // niezbędne nagłówki do wyświetlania wiadomości HTML
                    
    $naglowki "MIME-Version: 1.0" "\r\n";
                    
    $naglowki .= "Content-type:text/html;charset=utf-8" "\r\n";

                    
    // opcjonalne nagłówki
                    
    $naglowki .= 'From: <'.$email.'>' "\r\n";
                    
    $naglowki .= 'Cc: <'.$twojemail.'>' "\r\n";

                    
    // całkowita treść wiadomości
                    
    $message nl2br($message);
                    
    $wiadomosc = <<< KONIEC
                    <html>
                        <p><strong>Imię i nazwisko:</strong> 
    $name</p>
                        <p><strong>Telefon:</strong><br /> 
    $tel</p>
                        <p><strong>E-mail:</strong> 
    $email</p>
                        <p><strong>Wybrany temat:</strong><br /> 
    $subject</p>
                        <p><strong>Wiadomość:</strong><br /> 
    $message</p>
                    </html>
    KONIEC;
                    
    // wysyłanie wiadomości e-mail
                    
    $wynik mail('<'.$twojemail.'>'$temat$wiadomosc$naglowki);

                    
    // komunikat potwierdzający wysłanie wiadomości bądź nie
                    
    if ($wynik) {
                        echo 
    '

                        <div class="section-title">
                            <p></p>
                            <p></p>
                            <h2>Dziękujemy</h2>
                            <p><Strong>Wiadomość została wysłana</strong></p>
                            <p>Za chwilę nastąpi przekierowanie na stronę startową.</p>
                        </div>'
    ;
                    } else {
                        echo 
    '
                        <div class="section-title">
                            <h2>blad</h2>
                        </div>'
    ;
                    }
                }

            }
    ?>

    <meta http-equiv="refresh" content="10; url=d/index.html" />
    </body>
    </html>
    Oczywiście w miejscu: moj-adres-email wskazywałem swój adres, który jest na gmail'u
    Proszę o pomoc.
     

    Załączone pliki:

    • mail.php
      Rozmiar pliku:
      3,4 KB
      Wyświetleń:
      69
  2. LorK

    LorK Pogromca Beta-tester

    Wiadomości:
    915
    Docenione treści:
    83
    1. u mnie działa (wysłałem na adres, który utrzymuje Home.pl). Możliwe, że gmail odrzuca.
    2. tak się nie pisze formularzy - użyj jakiś gotowych bibliotek LUB zleć komuś poprawienie tego.
     
  3. mrexo

    mrexo Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    0
    Ok. Dzięki za weryfikacje. Skoro maile nie dochodzą na moją skrzynkę oznacza to, że gmail zablokował moj serwer na home.pl za zbyt częste otrzymywanie wiadomości?

    PS Czy mógłbyś polecić jakąś sprawdzoną gotową bibliotekę?
     
  4. LorK

    LorK Pogromca Beta-tester

    Wiadomości:
    915
    Docenione treści:
    83
    na jakim silniku masz postawioną stronę?
     
  5. mrexo

    mrexo Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    0
    Nie ma tak na prawdę postawionego silnika.
    Strona składa się z:
    1. HTML5
    2. CSS
    3. Bootstrap
    4. JS
     
  6. Mariusz

    Mariusz BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 034
    Docenione treści:
    300
    @mrexo w skrócie sytuacja wygląda tak: jeśli formularz jest zbudowany poprawnie (nie sprawdziłem go), to wiadomości z tego formularza powinny zostać wysłane ze skrzynki e-mail, która istnieje na tym samym serwerze, na którym znajduje się skrypt tego formularza kontaktowego. W przeciwnym wypadku wiadomość z formularza kontaktowego nie zostanie dostarczona.

    Przykładowo, możesz utworzyć nową skrzynkę na tym samym serwerze, np. o nazwie: "formularz@twojadomena.pl" i wykonać zmianę w skrypcie, aby w polu from był podany ten właśnie nowy adres e-mail.

    Poniżej pokazuje fragment kodu z Twojego skryptu, w którym obecnie zadeklarowany jest adres e-mail, który jest wpisywany przez użytkowników podczas uzupełniania formularza kontaktowego. Oznacza to, że jeśli użytkownik wypełniający formularz kontaktowy podał swój adres e-mail (np. kowalski@gmail.com), to taka wiadomość nie zostanie dostarczona, ponieważ nasze zabezpieczenia sprawdzą czy taka skrzynka e-mail znajduje się na serwerze w home.pl. Oczywiście taka skrzynka nie zostanie odnaleziona, więc wysyłka zostanie przez nasz serwer odrzucona.
    Daj znać czy jesteś w stanie samodzielnie to zmodyfikować. Jeśli nie, to spróbuję w wolnej chwili Ci pomóc.

    Więcej informacji: https://pomoc.home.pl/baza-wiedzy/formularz-kontaktowy-na-stronie-www-nie-wysyla-wiadomosci
     
  7. Grzesiek

    Grzesiek BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 261
    Docenione treści:
    314
    @mrexo czy możemy Ci w chwili obecnej pomóc w czymś jeszcze?
     

Poleć forum znajomym