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 problem z prostym skryptem mail php i formularzem

Dyskusja w 'WordPress, Joomla!, PHP, HTML, CSS' rozpoczęta przez użytkownika duchop43, 24 Wrzesień 2016.

  1. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    Witam mam problem z prostym skryptem mail. php i formularzem. Problem polega na tym iż jeśli w pisze w niego jakikolwiek e-mail lub ktoś chce do mnie wysłać podając swój e-mail z tego formularza to poczta nie dochodzi a jest tylko wiadomość ze wszystko ok. A jak bez podania swego adresu e-mail to wszystko dochodzi do mnie?

    Dziwny problem może tutaj mógłby mi udzielić rady co zrobić??
     
  2. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @duchop43 podaj proszę link do tego skryptu i opisz jeden przykład, kiedy formularz nie działa (np. kogo adres e-mail został podany w formularzu jako do odpowiedzi).
     
  3. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    witam skrypt jest na mojej stronie szumiglowka.pl a link już podaje umieszczony jest na podstronie http://szumiglowka.pl/kontakt.php formularz działa tzn przychodzą e-maile jak nie ma w polu od kogo podanego adresu e-mail tylko temat i treść a jak wpisze się w polu jakikolwiek e-mail to nie przechodzi nic a link do skryptu https://serwer1677112.home.pl/homeftp/index.php i tram jest skrypt mail.php
     
  4. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    podaj kod funkcji wysyłającej maila, a nie samego formularza to podam Ci błąd, brakuje pewnie ostatniej zmiennej wymaganej w home.
     
  5. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    Witam podaje kod skryptu
    <?php
    $to = 'szumiglowka@serwer1677112.home.pl';
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $headers = 'From:' . $_POST['email'] . "\r\n" .
    'Content-type: text/html; charset=utf-8';

    mail($to, $subject, $message, $headers);
    echo 'Wszystko ok';
    ?>
    a sam formularz
    <form id="formularzKontaktowy" class="form-horizontal" action="mail.php" method="post">

    <div class="control-group">
    <label class="control-label" for="inputSubject">Temat</label>
    <div class="controls">
    <input type="text" name="subject" class="input-xlarge" id="inputSubject" placeholder="Temat wiadomości">
    </div>
    </div>

    <div class="control-group">
    <label class="control-label" for="inputEmail">Email</label>
    <div class="controls">
    <input type="text" name="email" class="input-xlarge" id="inputEmail" placeholder="Email">
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="inputMessage">Wiadomość</label>
    <div class="controls">
    <textarea type="text" name="message" class="input-xlarge" id="inputMessage" placeholder="Twoja wiadomość" rows="6"></textarea>
    </div>
    </div>

    <div class="control-group">
    <div class="controls">
    <button type="submit" class="btn btn-primary">Wyślij wiadomość</button>
    </div>
    </div>
    </form>
     
  6. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Zamień:
    Kod:
    $headers = 'From:' . $_POST['email'] . "\r\n" .
    
    Na
    Kod:
    $headers = 'From: adres@natwoimserwerze.pl\r\n" .
    
    Powinno ruszyć. Wysyłka może być jedynie z adresów na danym serwerze home.
    piszę z telefony więc nie wiem czy literówki nie ma.
     
  7. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    PHP:
    $headers "From: adres@natwoimserwerze.pl\r\n";
    Drobna literówka @TheL , ale może napsuć krwi ;)

    A zmienną $_POST['email'] dodałbym np. tak:
    PHP:
    $message "Wiadomość od "$_POST['email'] . ": \r\n";
    $message .= $_POST['message'];
    Możesz też zastosować:

    PHP:
    $headers "From: adres@natwoimserwerze.pl\r\n";
    $headers .= "Reply-to: ".$_POST['mail']."\r\n";
    Co ułatwi Ci odpowiadanie na maila.
     
  8. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Tak @casar jesli dalej nie byloby content type :)
     
  9. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    witam ponownie kod zmieniłem coś ruszyło, ale jako adres nadawcy otrzymuje swój własny adres serwera, a nie adresy e-mail z których zostały nadane wiadomości

    kod obecnie wygląda tak

    <?php
    $to = 'szumiglowka@szumiglowka.pl';
    $subject = $_POST['subject'];
    $message .= $_POST['message'];
    $headers = "From: adres@natwoimserwerze.pl\r\n";
    $headers = "Content-type:text/html;charset=UTF-8" . "\r\n";

    mail($to,$subject,$message,$headers);
    echo 'Wszystko ok';
    ?>

    a wiadomości jakie dostaje są od serwer1677112@serwer1677112.home.pl
     
  10. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
  11. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    Kod:
    $to = 'szumiglowka@serwer1677112.home.pl';
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $headers = 'From:' . $_POST['email'] . "\r\n" .
    Powyższy kod zamieniłbym na poniższy i powinno działać:

    Kod:
    $to = 'szumiglowka@serwer1677112.home.pl';
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $headers = 'From: adres@natwoimserwerze.pl\r\n';
    $headers .= 'Reply-to:' . $_POST['email'] . "\r\n" ;
     
  12. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    Żaden kod z powyższych nie jest dobry :D

    ja też nie mam za bardzo czasu więc na szybko sklejony
    Kod:
        <?php
        $to = 'szumiglowka@szumiglowka.pl';
        $subject = $_POST['subject'];
        $message = '<b>Wiadomość od:</b> '.$_POST['email'].'<br><b>Treść wiadomości:</b><br>'.$_POST['message'];
       
       $headers  = "From: Email ze strony < szumiglowka@szumiglowka.pl >\n";
      //  $headers .= "Cc: Kopia do < kopia@dokogos >\n";
        $headers .= "X-Sender: Email ze strony < szumiglowka@szumiglowka.pl >\n";
        $headers .= 'X-Mailer: PHP/' . phpversion();
        $headers .= "X-Priority: 1\n"; // Urgent message!
        $headers .= "Return-Path: szumiglowka@szumiglowka.pl\n"; // Return path for errors
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=utf-8\n";
       $headers .= "Reply-to: ".$_POST['email']."\r\n";
       if ($_POST['message']<>'') {
       
       if( mail($to, $subject, $message, $headers))
       {
        echo 'Wiadomość wysłana';
        }
       }
       else {
          echo "<font style='color:red;'><b>Wpisz treść wiadomości</b></font>";
       }
       ?>
    
        <form id="formularzKontaktowy" class="form-horizontal" action="phpmail.php" method="post">
    
        <div class="control-group">
        <label class="control-label" for="inputSubject">Temat</label>
        <div class="controls">
        <input type="text" name="subject" class="input-xlarge" id="inputSubject" placeholder="Temat wiadomości">
        </div>
        </div>
    
        <div class="control-group">
        <label class="control-label" for="inputEmail">Email</label>
        <div class="controls">
        <input type="text" name="email" class="input-xlarge" id="inputEmail" placeholder="Email">
        </div>
        </div>
        <div class="control-group">
        <label class="control-label" for="inputMessage">Wiadomość</label>
        <div class="controls">
        <textarea type="text" name="message" class="input-xlarge" id="inputMessage" placeholder="Twoja wiadomość" rows="6"></textarea>
        </div>
        </div>
    
        <div class="control-group">
        <div class="controls">
        <button type="submit" class="btn btn-primary">Wyślij wiadomość</button>
        </div>
        </div>
        </form>
         
    to chociaż sprawdza czy mail na pewno został wysłany :D i nie wysyła maila od razu po uruchomieniu pliku :D
     
  13. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    po za tym nie dasz rady osiągnąć adresów z których wysyłany jest email w polu From (Od) on się pojawi w polu Do jeśli wybierzesz odpowiedz.
     
  14. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Ok, ale bardziej chodziło mi o otwierający apostrof + zamykający cudzysłów ;)
     
  15. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @duchop43 udało Ci się odpowiednio zmodyfikować swój skrypt na podstawie naszych wskazówek?
     
  16. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    @Mariusz nie mogło mu się nie udać skodo podałem dokładny kod :D (sprawdzony) :D
    @casar faktycznie nie zauważyłem :D
     
  17. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    witam dziękuje za podpowiedzi i dopiero teraz mogę zabrać się za skrypt jak pójdzie to dam znać
     
  18. duchop43

    duchop43 Początkujący

    Wiadomości:
    6
    Docenione treści:
    0
    Dziękuję serdecznie za pomoc @TheL a przy okazji mam jeszcze jedno pytanie jakbym chciał dołączyć możliwość dodawania plików w różnej postaci od osób wysyłających wiadomości chodzi mi o załączniki czy to w pdf czy w innym formacje jak najlepiej to by zrobić z pozycji php. Pytam bo dopiero php się uczę, a widzę że chętnie udzielacie porad i dobrych rad za co jeszcze raz serdecznie dziękuję .
     

Poleć forum znajomym