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...

Prośba o pomoc reCAPTCHA v3 - Email

Dyskusja w 'WordPress, Joomla!, PHP, HTML, CSS' rozpoczęta przez użytkownika Leszek, 8 Luty 2020.

  1. Leszek

    Leszek Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    Mam problem z Forumularzem Kontaktowym,

    Proboje dodac reCAPTCHA v3 i nie dziala..
    Robie cos zle ale nie wiem co

    Mam oto Taki skrypt

    <script src="https://www.google.com/recaptcha/api.js?render=6LfFXswUAAAAANoGGzOHjCWiOe6gpna_QnUq2dM_"></script>

    <div class="site-section bg-light text-black">
    <div class="container">
    <div class="row">
    <div class="col-md-7 mb-5">
    <form method="post" action="php/kontaktmail.php" id="contact_form" class="p-5 bg-white">
    <h2 class="text-center display-3">Kontakt Formular</h2>
    <div class="row form-group">
    <div class="col-md-6 mb-3">
    <div class="text-center"><label for="fname">Vorname*</label></div>
    <div><input type="text" minlength=2 maxlength=30 name="fname" id="fname" placeholder="Ihr Vorname" class="form-control text-center"/></div>
    </div>
    <div class="col-md-6 mb-3">
    <div class="text-center"><label for="sname">Nachname*</label></div>
    <div><input type="text" minlength=2 maxlength=30 name="sname" id="sname" placeholder="Ihr Nachname" class="form-control text-center"/></div>
    </div>
    <div class="col-md-12">
    <div class="text-center"><label for="phone">Telefonnummer</label></div>
    <div><input type="text" maxlength=30 name="phone" id="phone" placeholder="Ihre Telefonnummer" class="form-control text-center"/></div>
    </div>
    <div class="col-md-12">
    <div class="text-center"><label for="email">E-Mail*</label></div>
    <div><input type="email" minlength=5 maxlength=30 name="email" id="email" placeholder="Ihre E-Mail Adresse" class="form-control text-center"/></div>
    </div>
    <div class="col-md-12 mb-3 mb-md-0">
    <div class="text-center"><label for="titel">Titel*</label></div>
    <div><input type="text" minlength=5 maxlength=30 name="titel" id="titel" placeholder="Betreff" class="form-control text-center"/></div>
    </div>
    </div>
    <div class="row form-group">
    <div class="col-md-12">
    <div class="text-center"><label for="message">Nachricht*</label></div>
    <div><textarea name="message" minlength=5 maxlength=500 id="message" cols="30" rows="7" placeholder="Was möchten Sie Fragen?" class="form-control text-center"></textarea></div></div>
    </div>
    <div class="row text-center form-group">
    <div class="col-md-12">
    <input type="submit" value="Absenden" class="btn btn-v2 py-3 px-5 text-white">
    <div class="text-center text-primary" id="send_form_status"></div>
    </div>
    </div>
    <script>
    $('#contact_form').submit(function() {
    event.preventDefault();
    grecaptcha.ready(function() {
    grecaptcha.execute('6LfFXswUAAAAANoGGzOHjCWiOe6gpna_QnUq2dM_', {action: 'create_comment'}).then(function(token) {
    $('#contact_form').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">');
    {
    console.log(result);
    if(result.success) {
    alert('Dziala.')
    } else {
    alert('Za maly score.')
    }
    });
    });;
    });
    });
    </script>
    </form>
    </div>

    oraz php

    <?php
    header("content-type: application/json; charset=UTF-8");
    $fname=isset($_POST['fname']) ? $_POST['fname'] : "";
    $sname=isset($_POST['sname']) ? $_POST['sname'] : "";
    $email=isset($_POST['email']) ? $_POST['email'] : "";
    $phone=isset($_POST['phone']) ? $_POST['phone'] : "";
    $titel=isset($_POST['titel']) ? $_POST['titel'] : "";
    $message=isset($_POST['message']) ? $_POST['message'] : "";
    $captcha = filter_input(INPUT_POST, 'token', FILTER_SANITIZE_STRING);
    if($fname && $email && $sname && $titel && $message){
    $headers = "MIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: 8bit";
    $message_body="Kontaktformular gesendet von\nwww.ladyofshine.ch-CH\n\n";
    $message_body.="--------------------------------------\n";
    $message_body.="Vorname: $fname\n";
    $message_body.="Nachname: $sname\n";
    $message_body.="E-Mail Adresse: $email\n";
    $message_body.="Natel: $phone\n\n";
    $message_body.="Nachricht:\n\n$message\n\n";
    $message_body.="--------------------------------------\n";
    $message_body.="Freundliche Grüsse\nLADY OF SHINE\nDegersheimerstrasse 21\n9100 Herisau\nE-Mail: sara@ladyofshine.ch\nTel.: +41 76/6466722\n";
    $message_body1="Hallo $fname $sname,\n\n";
    $message_body1.="Vielen Dank für die Interesse an meinen Dienstleistungen.\n\n";
    $message_body1.="Ich werde innerhalb weniger Stunden eine Antwort an Sie senden.\n\n";
    $message_body1.="Unten finden Sie eine Kopie Ihrer Nachricht:\n\n";
    $message_body1.="--------------------------------------\n";
    $message_body1.="Vorname: $fname\n";
    $message_body1.="Nachname: $sname\n";
    $message_body1.="E-Mail Adresse: $email\n";
    $message_body1.="Natel: $phone\n\n";
    $message_body1.="Nachricht:\n\n$message\n";
    $message_body1.="--------------------------------------\n\n";
    $message_body1.="Freundliche Grüsse\nLADY OF SHINE\nSara Zięba\nDegersheimerstrasse 21\n9100 Herisau\nE-Mail: sara@ladyofshine.ch\nTel.: +41 76/6466722\n";


    if(mail("sara@ladyofshine.ch","$titel",$message_body,$headers,"-f sara@ladyofshine.ch")){
    if(mail("$email","$titel",$message_body1,$headers,"-f sara@ladyofshine.ch")){
    $json=array("status"=>1,"msg"=>"<p class='status_ok'>Ihre Nachricht wurde korrekt versendet.<br>Innerhalb weniger Sekunden erhalten Sie eine Kopie der versendeten E-Mail.<br>Vielen Dank, dass Sie den Dienst von<br>LADY OF SHINE nutzen.</p>");
    }
    }
    $secretKey = "6LfFXswUAAAAACKksV7_sDjre0h5C6FFexXkIWXL";
    $ip = $_SERVER['REMOTE_ADDR'];
    }

    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array('secret' => $secretKey, 'response' => $captcha);

    $options = array(
    'http' => array(
    'header' => "Content-type: application/x-www-form-urlencoded\r\n",
    'method' => 'POST',
    'content' => http_build_query($data)
    )
    );
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    $responseKeys = json_decode($response,true);
    header('Content-type: application/json');
    if($responseKeys["success"]) {
    echo json_encode(array('success' => 'true'));
    } else {
    echo json_encode(array('success' => 'false'));



    }
    else{
    $json=array("status"=>0,"msg"=>"<p class='status_err'>Es ist ein Skriptfehler aufgetreten.<br>Es ist nicht`s schlimmes :)<br>Bitte senden Sie die gleiche Nachricht erneut.</p>");
    if(!$captcha){
    echo '<h2>Please check the the captcha form.</h2>';
    exit;

    }
    else{
    $json=array("status"=>0,"msg"=>"<p class='status_err'>Bitte füllen Sie die mit * gekennzeichneten Pflichtfelder aus<br>und senden Sie die Nachricht erneut.</p>");
    }
    echo json_encode($json);
    exit;
    ?>

    czy ktos jest na tyle madry i moglby mi to naprostowac?
     
  2. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 064
    Docenione treści:
    96
    1. załącz pliki bo tu się czyta fatalnie
    2. if(mail()) (if (mail()))- a fuj
    3. daj adres strony, gdzie jest ten formularz
    4. próbowałeś dodać prosty formularz (np. z jednym inputem) i tak by działała reCaptcha?
     
  3. Leszek

    Leszek Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    Pliki zalaczone, https://www.ladyofshine.ch/kontakt.html , probowalem i dzialalo.. probowalem polaczyc skrypt i nie dziala..
     

    Załączone pliki:

  4. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 064
    Docenione treści:
    96
    Tak na szybko:

    Kod:
    {action: 'create_comment'})
    jesteś pewien, że to poprawna wartość?

    https://developers.google.com/recaptcha/docs/v3#actions

    Nie widzę odwołania do tej nazwy w skryptach, które wysłałeś.

    W formularzu nie działa walidacja, tak ma być?

    Próbowałeś jakiś tutorial?



    Kod:
    <input type="hidden" name="g-recaptcha-response"
    tu nie powinno być name-"g..." i id="g..."?
     
  5. Leszek

    Leszek Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    Skorzystalem z poradnika za ktory bardzo dziekuje :)
    Sam Skrypt dziala, ale jak proboje go polaczyc to juz nie dziala jak powinnien.
    Nie moge sie polapac jak to zlaczyc, HTML raczej okej ale problem jest po stronie PHP??

    Ustawilem score na 0.01 zeby sprawdzic czy dziala i nic
     

    Załączone pliki:

  6. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 064
    Docenione treści:
    96
    Na pierwszy rzut oka, brakuje definicji kluczy (secret oraz site), o których mowa w poradniku. Jesteś pewien, że zrobiłeś to uważnie?

    Proponuję Ci zrobić pustą stronę z formularzem, zaimplementować reCaptche i zobaczyć czy wtedy zadziała. Kod, który wysłałeś jest fatalny.
     

Poleć forum znajomym