google recaptcha 3 aanziet mij als spam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

De Clercq Andy

De Clercq Andy

16/12/2019 17:21:47
Quote Anchor link
Hey ik heb een contactformulier ontwikkeld en wil gebruik maken van google recaptcha 3 als beveiliging tegen spam.
De captcha steekt er in maar beschouwd mij als spam.
Kan iemand zeggen wat ik fout doe?
Post zowel php als jquery gedeelte.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../css/huisstijl.css">
<link rel="stylesheet" type="text/css" href="../../css/sjabloon.css">
<link rel="stylesheet" type="text/css" href="../../css/blokken.css">
<link rel="stylesheet" type="text/css" href="../../css/navigatie.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<title>E-services DVC Heilig Hart</title>
<script src="https://www.google.com/recaptcha/api.js?render=6Ldu8MIUAAAAAFEJd1Txxme6GNvnR72V0QmwyJrM"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>
#contactblokken
{
display:flex;
flex-direction:row;    
}
ol
{
float:left;
margin-top:-10px;
}
ol li
{
list-style-type:none;
margin:8pt;    
}
label
{
font-family:verdana;
font-size:10pt;    
width:110px;
float:left;
}
#naam
{
width:200px;    
}
#voornaam
{
width:200px;    
}
#email
{
width:200px;    
}
.button
{
color:white;
font-size:10pt;
font-weight:bold;
height:25pt;
background-color:rgb(192,154,0);
border-radius:25px;
cursor:pointer;
width:120px;
}
</style>
</head>
<body>
<div id="bovenstrook">
            <img src="https://www.mijndvcheilighart.be/images/banner.jpg">
        </div>
        <div id="container">
            <div id="linkerkolom">
                <nav>
                    <ul>
                    <?php
                    $spagina
="contact.php";
                    menu($db,$spagina);
                    ?>

                    </ul>
                </nav>
            </div>
            <div id="centrum">
                <section id="onderwerp">
                    <div class="onderwerp">
                    <div>
                    <i class="far fa-envelope fa-2x onderwerpIcoon"></i>
                    </div>
                    <div>
                    <h2 class="h2oranje">Contact</h2>
                    </div>
                    </div>
                </section>
                <section id="contactblokken">
                    <div>
                        <h2 class="h2paars">DVC Heilig Hart VZW </h2>
                        <ul>
                            <li class="naastelkaar">
                                <div><i class="fas fa-map-marker-alt"></i></div>
                                <div style="margin-left:5px;"><a class="standaard" style="text-decoration:none;" href="https://www.google.co.in/maps/place/Leernsesteenweg+53,+9800+Deinze/@50.9980345,3.5473689,17z/data=!3m1!4b1!4m5!3m4!1s0x47c36c89ac882f15:0x1aa071daa376fa67!8m2!3d50.9980345!4d3.5495576" target="_blank" title="Route naar DVC Heilig Hart">Leernsesteenweg 53, 9800 Deinze, Belgi</a></div>
                            </li>
                            <li class="naastelkaar">
                                <div><i class="far fa-envelope"></i></div>
                                <div style="margin-left:5px;"><a class="standaard" style="text-decoration:none;" href="mailto:[email protected]" title="Mail kwalitietscordinator">[email protected]</a></div>
                            </li>
                            <li class="naastelkaar">
                                <div><i class="fas fa-phone"></i></div>
                                <div style="margin-left:5px;"><span class="standaard">09 387 77 11</span></div>
                            </li>
                            <li class="naastelkaar">
                                <div><i class="fas fa-fax"></i></div>
                                <div style="margin-left:5px;"><span class="standaard">09 387 77 00</span></div>
                            </li>
                        </ul>
                    </div>
                    <div>
                    <h2 class="h2paars">Stel hier jouw vraag</h2>
                        <form id="frmcontact" name="frmcontact" method="post" action="contact.php">
                            <ol>
                                <li><label for="naam">Naam</label>
                                    <input type="text" name="naam" id="naam" autocomplete="on">
                                </li>
                                <li><label for="voornaam">Voornaam</label>
                                    <input type="text"  name="voornaam" id="voornaam" autocomplete="on">
                                </li>
                                <li><label for="email">E-mail</label>
                                    <input type="email"  name="email" id="email" autocomplete="on">
                                </li>
                                <li><label for="bericht">Bericht</label>
                                    <textarea rows="15" cols="60"  name="bericht" id="bericht"></textarea>
                                </li>
                                <li>
                                    <input type="submit" value="Verzenden" id="frmcontact" name="frmcontact" class="button"> &nbsp;
                                    <input type="reset" value="Annuleren" id="reset" name="reset" class="button">
                                </li>
                            </ol>
                        </form>
                        <script>
                        // na submit form
                            $('#frmcontact').submit(function() {
                            // tegenhouden verzenden
                                event.preventDefault();
                            var naam = $('#naam').val();
                            var voornaam = $('#voornaam').val();
                            var email = $('#email').val();
                            var bericht = $('#bericht').val();
                            // aanspreken recaptacha
                            grecaptcha.ready(function() {
                            //recaptcha token
                            grecaptcha.execute('mijn token', {action: 'contact'}).then(function(token) {
                            // plaats token in form
                            $('#frmcontact').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">');
                            alert(token);
                            $.post("contact.php",{naam: naam, voornaam: voornaam, email: email, bericht: bericht, token: token}, function(result) {
                            console.log(result);
                            if(result.success) {
                                    alert('Thanks for posting comment.')
                            } else {
                                    alert('You are spammer ! Get the @$%K out.')
                            }
                    });
            });;
        });
  });
  </script>
                    </div>
                </section>
            </div>
</div>
</body>
</html>

Dit is het stuk jquery en input wordt verzonden naar php hieronder
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$naam
, $voornaam, $email, $bericht;$captcha;
  $naam = filter_input(INPUT_POST,'naam',FILTER_SANITIZE_STRING);
  $voornaam = filter_input(INPUT_POST,'voornaam',FILTER_SANITIZE_STRING);
  $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
  $bericht = filter_input(INPUT_POST, 'bericht', FILTER_SANITIZE_STRING);
  $captcha = filter_input(INPUT_POST, 'token', FILTER_SANITIZE_STRING);
  if(!$captcha){
    echo '<h2>Please check the the captcha form.</h2>';
    exit;
  }

  $secretKey = "mijn sleutel";
  $ip = $_SERVER['REMOTE_ADDR'];
  
  // post request to server
  $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'));
  }

?>

Alles lijkt in orde maar ik krijg geen enkel from verzonden. Telkens zeft hij dat ik spam ben. Kan iemand helpen?
 
PHP hulp

PHP hulp

03/12/2024 22:24:15
 
- Ariën  -
Beheerder

- Ariën -

16/12/2019 17:24:48
Quote Anchor link
En wat meldt de console?
 
De Clercq Andy

De Clercq Andy

16/12/2019 20:54:34
Quote Anchor link
Daar zie ik dat mijn recaptcha 10 maal is aangeroepen. Kan ik ook meer in details ziien wat fout is?
Hierbij printscreen van controlepaneel:
Afbeelding
 
- Ariën  -
Beheerder

- Ariën -

16/12/2019 21:07:49
Quote Anchor link
De console (van je browser) moet aangeven wat de AJAX-request is die ontvangen wordt.
Daar zijn we wel benieuwd naar. Het controlepaneel is niet echt spannend.
 
Adoptive Solution

Adoptive Solution

16/12/2019 21:54:11
Quote Anchor link
Ben benieuwd wat er op Live Sex Web Cam (2e browser tab) te zien is.
Altijd oppassen met publiceren van schermafdrukken.
 
- Ariën  -
Beheerder

- Ariën -

16/12/2019 21:59:19
Quote Anchor link
:-D
 
De Clercq Andy

De Clercq Andy

16/12/2019 23:03:54
Quote Anchor link
Bedankt voor de tips :-)
Volgens mij bedoel je dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<br />
<b>Parse error</b>:  syntax error, unexpected ',' in <b>/data/sites/web/dvcheilighartbe/www/web2019/edvc/contact/contact.php</b> on line <b>2</b><br />


Toevoeging op 16/12/2019 23:15:59:

Ik heb het probleem opgelost.
Dankzij de tip van de console. Bedankt voor deze tip, heb niet veel ervaring met ajax request.
Nu kan ik terug verder!
 
De Clercq Andy

De Clercq Andy

19/12/2019 16:52:05
Quote Anchor link
Hallo,
de recaptcha werkt nu wel perfect maar hoe kan ik nu de inhoud van de form verder gebruiken?
Als ik aan mijn php stukje een dataconnectie en dergelijke krijg ik de request niet terug en weet ik dus ook niet of het geen spam is.
Probeerde ook al om dit in mijn index.php nogmaals te posten naar een submit pagina maar dat wil hij ook niet .
Kan er mij iemand op weg helpen?
Dus waar in dit geheel komt nu de eigenijke form afhandeling?
 
- Ariën  -
Beheerder

- Ariën -

19/12/2019 17:11:53
Quote Anchor link
Wat is je relevante code nu?
 
De Clercq Andy

De Clercq Andy

19/12/2019 18:59:20
Quote Anchor link
De relevante code is te zien in de originele post.
Maar nu vraag ik me dus af hoe ik de inhoud van het form kan verwerken.
Moçet ik daarvoor dat form nogmaals posten naar een derde script, vb insert.php
Of kan ik dat doen in het stuk contact.php na de controle en voor de echo ter hoogte van regel 31ongeveer.
Probeerde al op het einde maar dan werkt mijn alert uit index.php niet meer.
 
- Ariën  -
Beheerder

- Ariën -

19/12/2019 20:04:42
Quote Anchor link
De controle op je recaptcha valt onder jouw formulier validaties. Met jouw API key wordt er een request naar Google gestuurd, en die stuurt aan de hand van de gestuurde gegevens terug met het besluit of de bezoeker goedgekeurd is of niet. Dit controleer je dan in jouw code.

Als hier overal positief aan wordt voldaan, dan verwerk je de gegevens in de database.
Gewijzigd op 19/12/2019 20:06:05 door - Ariën -
 
De Clercq Andy

De Clercq Andy

19/12/2019 21:21:58
Quote Anchor link
Betekend dit dan na deze regel code?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($responseKeys["success"]) {
// hier data verwerken
    echo json_encode(array('success' => 'true'));
  }
else {
    echo json_encode(array('success' => 'false'));
  }

?>
 
- Ariën  -
Beheerder

- Ariën -

19/12/2019 21:38:44
Quote Anchor link
Ja, daarmee controleer je dat. Ik zou wel een nette controle inbouwen of het true of false is, en niet de waarde van de JSON-request die je terug krijgt naar de gebruiker sturen. Aan 'geheimtaal' heeft diegene niks.

Kijk anders eens wat voor data eruit gaat, en wat je terug krijgt in beide gevallen. Ik neem aan dat er een testmogelijkheid in ReCaptcha zit, al is het misschien een whitelist met IP's die je even fout invult.

Dus zorg in tegenstelling tot je vorige code tot een nette code die de juiste opbouw heeft.
Gewijzigd op 19/12/2019 21:43:34 door - Ariën -
 
De Clercq Andy

De Clercq Andy

19/12/2019 22:14:13
Quote Anchor link
Denk dat ik weg kan.
Zal morgen proberen.
Die code komt uit een tutorial ivm recaptcha en is dus zeker niet mijn idee.
Vandaar ook dat ik het geheel niet snapte.
Alvast bedankt om me verder te helpen.
 
Ozzie PHP

Ozzie PHP

19/12/2019 23:01:08
Quote Anchor link
Adoptive Solution op 16/12/2019 21:54:11:
Ben benieuwd wat er op Live Sex Web Cam (2e browser tab) te zien is.
Altijd oppassen met publiceren van schermafdrukken.

Hahaha :-) LOL
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.