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 na stronie WWW nie wysyła wiadomości

Dyskusja w 'Zabezpieczenia antyspamowe' rozpoczęta przez użytkownika Arek Biegaj, 31 Sierpień 2016.

  1. Arek Biegaj

    Arek Biegaj Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    1
    Witam użytkowników forum

    Pomagam koleżance uruchomić stronę www.drkedziora.eu która jest już umieszczona na home.pl Do uruchomienia pozostało wysyłanie wiadomości ze strony. Doczytałem, że po wprowadzeniu zmian które dają zabezpieczenie antyspamowe trzeba edytować kod w określony sposób aby zaczęło wszystko śmigać.
    Sporo materiałów przejrzałem i na forum i w pomocy
    np. https://pomoc.home.pl/baza-wiedzy/formularz-kontaktowy-na-stronie-www-nie-wysyla-wiadomosci/
    ale niestety nie udało się uruchomić tej funkcji. Trochę biednie u mnie z wiedzą na temat PHP i dlatego proszę o pomoc w edycji kodu. Wysyłanie działa u innych dostawców bo miałem okazję sprawdzić a więc kod sam w sobie jest OK.
    Z góry dziękuję za pomoc i poświęcony dla mnie czas

    PHP:
    <?php

    require_once('phpmailer/PHPMailerAutoload.php');

    $toemails = array();

    $toemails[] = array(
                    
    'email' => 'kancelaria@drkedziora.eu'// Your Email Address
                    
    'name' => 'Renata Kędziora' // Your Name
                
    );

    // Form Processing Messages
    $message_success '<strong>ODEBRALIŚMY</strong> Twoją wiadomość. Skontaktujemy się najszybciej jak to będzie możliwe';

    // Add this only if you use reCaptcha with your Contact Forms
    $recaptcha_secret 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'// Your reCaptcha Secret

    $mail = new PHPMailer();

    // If you intend you use SMTP, add your SMTP Code after this Line


    if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
        if( 
    $_POST['template-contactform-email'] != '' ) {

            
    $name = isset( $_POST['template-contactform-name'] ) ? $_POST['template-contactform-name'] : '';
            
    $email = isset( $_POST['template-contactform-email'] ) ? $_POST['template-contactform-email'] : '';
            
    $phone = isset( $_POST['template-contactform-phone'] ) ? $_POST['template-contactform-phone'] : '';
            
    $subject = isset( $_POST['template-contactform-subject'] ) ? $_POST['template-contactform-subject'] : '';
            
    $message = isset( $_POST['template-contactform-message'] ) ? $_POST['template-contactform-message'] : '';

            
    $subject = isset($subject) ? $subject 'Nowa wiadomość ze strony drkedziora.eu';

            
    $botcheck $_POST['template-contactform-botcheck'];

            if( 
    $botcheck == '' ) {

                
    $mail->SetFrom$email $name );
                
    $mail->AddReplyTo$email $name );
                foreach( 
    $toemails as $toemail ) {
                    
    $mail->AddAddress$toemail['email'] , $toemail['name'] );
                }
                
    $mail->Subject $subject;

                
    $name = isset($name) ? "Nazwisko: $name<br><br>" '';
                
    $email = isset($email) ? "Email: $email<br><br>" '';
                
    $phone = isset($phone) ? "Telefon: $phone<br><br>" '';
                
    $message = isset($message) ? "Wiadomość: $message<br><br>" '';

                
    $referrer $_SERVER['HTTP_REFERER'] ? '<br><br><br>Ta wiadomość została wysłana z: ' $_SERVER['HTTP_REFERER'] : '';

                
    $body "$name $email $phone $message $referrer";

                
    // Runs only when File Field is present in the Contact Form
                
    if ( isset( $_FILES['template-contactform-file'] ) && $_FILES['template-contactform-file']['error'] == UPLOAD_ERR_OK ) {
                    
    $mail->IsHTML(true);
                    
    $mail->AddAttachment$_FILES['template-contactform-file']['tmp_name'], $_FILES['template-contactform-file']['name'] );
                }

                
    // Runs only when reCaptcha is present in the Contact Form
                
    if( isset( $_POST['g-recaptcha-response'] ) ) {
                    
    $recaptcha_response $_POST['g-recaptcha-response'];
                    
    $response file_get_contents"https://www.google.com/recaptcha/api/siteverify?secret=" $recaptcha_secret "&response=" $recaptcha_response );

                    
    $g_response json_decode$response );

                    if ( 
    $g_response->success !== true ) {
                        echo 
    '{ "alert": "error", "message": "Captcha nie zatwierdzona! Proszę spróbować jeszcze raz." }';
                        die;
                    }
                }

                
    $mail->MsgHTML$body );
                
    $sendEmail $mail->Send();

                if( 
    $sendEmail == true ):
                    echo 
    '{ "alert": "success", "message": "' $message_success '" }';
                else:
                    echo 
    '{ "alert": "error", "message": "<strong>NIE DALIŚMY RADY</strong> wysłać wiadomości przez niespodziewany błąd. Spróbuj ponownie później.<br /><br /><strong>POWÓD:</strong><br />' $mail->ErrorInfo '" }';
                endif;
            } else {
                echo 
    '{ "alert": "error", "message": "Bot <strong>Detected</strong>.! Clean yourself Botster.!" }';
            }
        } else {
            echo 
    '{ "alert": "error", "message": "Proszę <strong>wypełnij</strong> wszystkie pola i spróbuj ponownie." }';
        }
    } else {
        echo 
    '{ "alert": "error", "message": "Wystąpił<strong>Niespodziewany błąd</strong>. Proszę spróbuj ponownie." }';
    }

    ?>
     
  2. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Nie mając wglądu w strukturę jaką przyjmuje $mail i jej funkcje, zmieniłbym tylko tą linię:
    PHP:
    $mail->SetFrom$email $name );
    na
    PHP:
    $mail->SetFrom"adres_email_na_serwerze_w_home" "wlasna nazwa" );
    Oczywiście z własnymi danymi (adres skrzynki założonej na serwerze i jakaś dowolna nazwa).
     
    Mariusz lubi to.
  3. gregre

    gregre Bywalec

    Wiadomości:
    16
    Docenione treści:
    1
    Mam podobny problem. Możecie mi powiedzieć gdzie w wordpressie szukać tego fragmentu kodu?
     
  4. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @Arek Biegaj spróbuj proszę wykonać taką zmianę w kodzie jaką opublikował powyżej użytkownik @casar

    Przykładowo:
    Kod:
    $mail->SetFrom( "mail@twojadomena.pl" , "dowolna nazwa" );
    , gdzie mail@twojadomena.pl musi być skrzynką e-mail, która znajduje się na tym samym serwerze co Twoja strona WWW (a dokładniej skrypt formularza kontaktowego).

    Daj proszę znać tu na forum czy pomogło.
     
  5. Arek Biegaj

    Arek Biegaj Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    1
    Dzięki wielkie Panowie za szybką odpowiedź. Teraz działa jak należy :)
    Powiem szczerze, że dawno nie dostałem tak szybko odpowiedzi - chyba zacznę regularnie korzystać z home.pl

    pozostało jeszcze powalczyć z wyświetlaniem polskich znaków bo znowu krzaki się pojawiają :confused:
     
    casar lubi to.
  6. Arek Biegaj

    Arek Biegaj Nowy użytkownik

    Wiadomości:
    3
    Docenione treści:
    1
    No i ze znakami poszło :) Tym razem wystarczyło zmienić public $CharSet = 'utf-8'; w class.phpmailer.
    Jeszcze raz dziękuję i pozdrawiam
     
  7. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Podaj więcej informacji. Korzystasz z jakiejś wtyczki?

    Widzę, że kwestia rozwija się w tym miejscu
     
  8. gregre

    gregre Bywalec

    Wiadomości:
    16
    Docenione treści:
    1
    Tak, sprawa w toku. Pisałem, zanim zaczęło się dziać. Mimo wszystko jestem ciekaw, gdzie znaleźć ten fragment:) Dzięki.
     
  9. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    Tak, potwierdzam. Odpisałem w tym temacie - podałem plik, w którym wymagana byłaby modyfikacja, zaproponowałem również dwie modyfikacje. Jeśli pierwsza nie pomoże, to druga już powinna. @gregre daj proszę znać w tym drugim temacie czy zaproponowane modyfikacje pomogły.
     

Poleć forum znajomym