• De afgelopen dagen zijn er meerdere fora waarop bestaande accounts worden overgenomen door spammers. De gebruikersnamen en wachtwoorden zijn via een hack of een lek via andere sites buitgemaakt. Via have i been pwned? kan je controleren of jouw gegeven ook zijn buitgemaakt. Wijzig bij twijfel jouw wachtwoord of schakel de twee-staps-verificatie in.

Advies Captcha toevoegen aan een formulier

Status
Niet open voor verdere reacties.

Bert jent

Nieuw lid
Lid geworden
9 apr 2021
Berichten
13
Waarderingsscore
0
Hallo, ik je hulp bij bovenstaande vrraag, ik nu ookzo'n soort gelijke vraag. Zit je voordat ik verder ga nog op het form en wil/kun jij mij misschien ook helpen
 
Beste Bert,

Allereerst welkom hier op het forum.
Ik heb jou een eigen topic gegeven, want reageren op een topic uit 2014 heeft geen zin en het is niet wenselijk om jou probleem in andermans topic te stellen.

Dus kun jij hier verder worden geholpen, dit kan even duren want de mensen die verstand van dit onderwerp hebben zijn niet elke dag hier :)
 
Oke ik wacht wel even af, in iedergeval bedankt
 
Hallo, ik je hulp bij bovenstaande vrraag, ik nu ookzo'n soort gelijke vraag. Zit je voordat ik verder ga nog op het form en wil/kun jij mij misschien ook helpen
Dan is het handig om jouw vraag volledig te stellen. Ik begrijp dat jouw vraag in eerste instantie in een ander topic is gesteld, maar die eerdere informatie ontbreekt nu.
Het is dan van belang om te weten hoe jij het formulier wilt maken (bijvoorbeeld via een cms als Wordpress of via html/php/js).
 
@Bert jent - ik denk dat je zoiets bedoeld als hieronder afgebeeld:

6074971e848bd-Opera_Momentopname_2021-04-12_205217_www.nationaalcomputerforum.nl.png


Dat is het scherm wat je hier krijgt, als je nog niet bent ingelogd en op Contact klikt
{helemaal onderin dit forum).
 
Beste Gouwepeer, alvast bedankt dat je me wil helpen.
Ik ben maar een amateur in het maken van een website HTML gaat me nog redlijkaf de rest wordt wat moeilijker.
Eerst de situatie zoals die nu is: ik heb een contact formulier met velden in HTML bij het form id zie regel hieronder
<td form id=”contact” action=”https://www.verhuuropkreta.com/nl/contact/form.php” method=”post”> wijst hij naar een perl script die de verificatie uitvoert en verstuurt. Deez opzet is ooit eens gemaakt in samenwerking met een oud collega, welke is overleden.
Nu komt er regelmatig spam binnen en wil ik recaptcha gaan invoegen.
Even kijken of de theorie eronder goed begrijp: vanuit het formulier wordt een ander formulier aangeroepen die de recaptcha verder controleert en verstuurt naar het html formulier terud voor verzending.
Ik heb al de key V3 van Google en in de head het volgende script neer gezet::
<script src=”https://www.google.com/recaptcha/api.js” async defer>
</script>
<script> function captchaSubmit(data)
{ document.getElementById(“contact”).submit(); }
</script>
onderaan bij het post commando
:<button name="B1"class=”g-recaptcha” data-sitekey=”11111111111” data-callback=”captchaSubmit” data-badge=”inline”>Submit</button>

een nieuw PHP pagina aangemaakt als hieronder:
<?php


$honeypot = $_POST[“bjhp”];


$response = $_POST[“g-recaptcha-response”];
// Curl Request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, array( ‘secret’ => $secret, ‘response’ => $response, ‘remoteip’ => $remoteip ));
$curlData = curl_exec($curl); curl_close($curl);
// Parse data
$recaptcha = json_decode($curlData, true);



>if (($recaptcha[“success”]) && (strlen($honeypot) === 0))
{

//Setup cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “www.verhuuropkreta.com/cgi-bin/nl/mail.pl”);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);



header(“www.verhuuropkreta.com/nl/contact/thanks.htm”);

}

Alleen het werkt niet! wat doe ik of wat gaat er mis?
Een lang verhaal maar dan heb je zo beetje alle gegevens
Groet Bert

Deel door moderator verwijderd ivm veiligheid.
 
Zo te zien ben je inderdaad nog maar het begin van het creeëren van een website.
Er staat al wel iets, maar uitnodigend en overzichtelijk zijn mis ik nog.
De appartementen die je toont mogen wel iets groter afgebeeld worden.
En waarschijnlijk dat je veel meer info gaat aanbrengen voor de appartementen die je kan huren via jouw site.

Ik denk dat je kort binnenkort @maulem tegen zal komen, ik hier al veel van hem gezien en hij zal je wel op het spoor brengen hoe die captcha te integreren.
 
>if (($recaptcha[“success”]) && (strlen($honeypot) === 0))
{

Ik heb de code doorgenomen. Om te beginnen staat voor de if-expressie een > teken, wat doet dat daar?

<td form id=”contact”

En een form als child van een table data (td) is niet toegestaan.
 
Laatst bewerkt:
Helemaal goed een tik foutje over het hoofd gezien.
Zijn er nog meer zaken die niet kloppen?
Groet Bert
 
Mij lijkt het te kunnen zo. Wat is die $honeypot = $_POST[“bjhp”] eigenlijk voor een gegeven?
 
Ik zit jouw site te bekijken (met name de broncode) en ik heb het idee dat het een oude site is die zo nu en dan is bijgewerkt. Op de homepage kom ik meerdere malen <html> en </html> tegen, terwijl die tags ieder maar 1 keer voor horen te komen.
Verder zie ik ook <title>Het adres voor een voordelige vakantie op Kreta</title> en <title>menu</title> staan, alsmede 2 keer <head> en </head>, <body bgcolor="#F3F4E1" text="BLACK" lang=NL oncontextmenu="return false" ondragstart="return false" onselectstart="return false"> en </body> halverwege de content. Misschien is het een idee om Wordpress te gaan gebruiken?
 
Maulem,
Ik heb in het verleden geprobeerd het met een honingpotje op te lossen, Werkte eigenlijk niet kan eruit als dat iets in de weg staat . Net geprobeerd werkt niet ,kan dat in het perl script zitten?
Voor reccaptcha werkte dat goed. Wat gaat er nog meer fout aangepaste versie staat online
 
Hi Bert

Waar kan ik de aangepaste versie vinden?

Wat ook kan helpen is de geretourneerde $response even echo-en naar het scherm, dan zie je of die de juiste waarde heeft.

Anders kijken we morgen toch verder? Het is alweer laat.
 
Is goed wacht wel tot morgen en hierbij de aangepaste versie:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>form</title>

</head>

<body
<?php


$honeypot = $_POST[“bjhp”];


$response = $_POST[“g-recaptcha-response”];
// Curl Request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, array( ‘secret’ => $secret, ‘response’ => $response, ‘remoteip’ => $remoteip ));
$curlData = curl_exec($curl); curl_close($curl);
// Parse data
$recaptcha = json_decode($curlData, true);


if (($recaptcha[“success”]) && (strlen($honeypot) === 0))
{


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “www.verhuuropkreta.com/cgi-bin/nl/mail.pl”);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);



header(“www.verhuuropkreta.com/nl/contact/thanks.htm”);

}


Deel door moderator verwijderd voor veiligheid.
 
Wat voor veldnamen heb je precies in jouw formulier staan, dus hoe heten de inputs/textarea, die in de array $_POST terechtkomen, exact? Dan kan ik jouw script lokaal testen. Plak evt. het gehele contactformulier in jouw volgende bericht.
 
<HTML>
<head>
<SCRIPT>
<!--
if (window.Event) // Only Netscape will have the CAPITAL E.
document.captureEvents(Event.MOUSEUP); // catch the mouse up event
function nocontextmenu() // this function only applies to IE4, ignored otherwise.
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e) // This function is used by all others
{
if (window.Event) // again, IE or NAV?
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</SCRIPT>





<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Welkom op de site van Verhuur op Kreta</title>
<base target="_self">
<style type="text/css">
<!--
body
{
scrollbar-face-color: #D2D3C3;
scrollbar-arrow-color: #000099;
scrollbar-darkshadow-color: #F3F4E1;
scrollbar-3dlight-color: #F3F4E1;
scrollbar-shadow-color: #000099;
scrollbar-highlight-color: #F3F4E1;
background: #F3F4E1;
.style1 {
font-family: "Trebuchet MS";
font-size: xx-small;
}
-->
</style>
<script type="text/javascript">
function writeCopyrightyear ()
{
copyright = new Date();
update = copyright.getYear();
document.write(update);
}
</script>
<script src=”https://www.google.com/recaptcha/api.js” async defer>
</script>
<script> function captchaSubmit(data)
{ document.getElementById(“contact”).submit(); }
</script>
</head>
<div id="menu"><?php include("../menu.php"); ?></div>
<div id="content">
<body bgcolor="#F3F4E1" leftmargin="0" oncontextmenu="return false" ondragstart="return false" onselectstart="return false">
<form id=”contact” action=”https://www.verhuuropkreta.com/nl/contact/form.php” method=”post”>

<table width="100%" border="0" height="86">
<tr>
<td width="830" height="82"><p align="left"><font face="Trebuchet MS" size="2"> <P STYLE="margin: 15pt 60pt">If you like to have more information regarding the apartment complex To Ostrakon, please contact: <a href="mailto:info@verhuuropkreta.com">info@verhuuropkreta.com</a> or use the form below.<b style="mso-bidi-font-weight:normal"></b></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5%">&nbsp;</td>
<td width="95%"><small><font face="Verdana" color="#FF0000">Your name <span class="style3">(required)</span> </font></small></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="Name" type="text" size="50">
</p></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>
<td height="20">&nbsp;</td>
<td width="95%"><small><font color="#FF0000" face="Verdana">E-mail address <span class="style3">(required)</span> </font></small></td>
</tr>
<tr>
<td height="20">&nbsp;</td>
<td><input name="Email" type="text" size="80" maxlength="xx">
</p></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5%" height="20">&nbsp;</td>
<td width="95%"><small><font face="Verdana" color="#FF0000">Your question or remark (<span class="style3">required</span>) </font></small></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5%">&nbsp;</td>
<td width="95%"><textarea name="Message" cols="60" rows="5"></textarea>
</p></td>
</tr>
<tr>
<td height="20">&nbsp;</td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="left"><br>
<td style="display: none";>
<table width="100%" border="0" cellspacing="0" cellpadding="0" >

<tr>
<td width="5%">&nbsp;</td>
<td width="95%"><small><font face="Verdana" color="#FF0000">bjhp <span class="style3"></span> </font></small></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="bjhp" type="text" size="50">
</p></td>
</tr>
<tr>
<td>&nbsp;</td>
</table>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="left">
<button name="B1"class=”g-recaptcha” data-sitekey=”6LeAMpsaAAAAAJ8Rc1ZoCEKlYMmunG7bki8dsUOK” data-callback=”captchaSubmit” data-badge=”inline”>Submit</button>
</div>
</p>

<br><br>
<td> <P STYLE="margin: 15pt 300pt">
<P STYLE="margin: 15pt 300pt"><font size="-2">Copyright ©
<script type="text/javascript">
<!--
var currentTime = new Date()
var year = currentTime.getFullYear()
document.write( + year)
//-->
</script>
Verhuuropkreta.com All rights Reserved.</font>
</center>
</td>

</tr>
</form>
</body>
</html>
 
Jouw script loopt misschien, ik kan het hier niet checken. Ik heb het in de centrifuge gegooid. De eerste curl call heb ik weggelaten, dus $curlData = curl_exec($curl); curl_close($curl); Verder $honeypot weggelaten.

Ik heb het contactformulier wat 'basic' nagemaakt, puur voor het overzicht. De reCAPTCHA wordt nu wel getoond. Ik heb het contactformulier enkele malen ingevuld en ge-submit, als je eens zou willen checken of je mail hebt ontvangen via het perl script?

De code van het contactformulier:

HTML:
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Welkom op de site van Verhuur op Kreta</title>
    <base target="_self">
    <style type="text/css">
        <!--
        body {
            scrollbar-face-color: #D2D3C3;
            scrollbar-arrow-color: #000099;
            scrollbar-darkshadow-color: #F3F4E1;
            scrollbar-3dlight-color: #F3F4E1;
            scrollbar-shadow-color: #000099;
            scrollbar-highlight-color: #F3F4E1;
            background: #F3F4E1;
            color: #FF0000;
            font-family: "Verdana";
        }

        .style1 {
            font-family: "Trebuchet MS";
            font-size: xx-small;
        }

        #left {
            width: 20%;
            float: left;
        }

        #right {
            width: 20%;
            float: right;
        }

        #container {
            width: 40%;
            margin-left: auto;
            margin-right: auto;
            margin-top: 250px;
            height: auto;
            border: 0px solid black;
        }

        #naam, #e-mailadres, #bericht {
            display: block;
        }

        input, textarea, button {
            display: block;
            padding: 10px 20px 10px 13px !important;
            width: 300px;
            height: auto !important;
            border: 1px solid black;
            -webkit-border-radius: 3px;
            -moz-border-radius: 3px;
            border-radius: 3px;
            background-color: #fff;
            color: gray;
            font-size: 15px;
            font-family: Arial;
            line-height: 16px !important;
            -webkit-appearance: none;
            -moz-appearance: none;
            clear: both;
        }

        textarea {
            width: 400px;
            height: 300px;
        }

        .smallspacer {
            height: 10px;
        }
        -->
    </style>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    <script>
        function captchaSubmit(data) {
            document.getElementById("contact").submit();
        }
    </script>
</head>
<body>
<div id="left"></div>
<div id="right"></div>
<div id="container">
    <form id="contact" action="form.php" method="post">
        Naam:
        <input name="Name" id="naam" type="text" size="50">
        <div class="smallspacer"></div>
        E-mailadres:
        <input name="Email" id="e-mailadres" type="text" size="80">
        <div class="smallspacer"></div>
        Bericht:
        <textarea name="Message" id="bericht" cols="60" rows="5"></textarea>
        <div class="smallspacer"></div>
        <div align="left">
            <button name="B1" class="g-recaptcha" data-sitekey="6LdTAqsaAAAAADQitV3K87S7fDHiEF94m80R0wIs" data-callback="captchaSubmit" data-badge="inline">Submit</button>
        </div>

    </form>
    </div>
</body>>
</html>

En form.php:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>form</title>

</head>

<body>
<?php

$response = $_POST["g-recaptcha-response"];

if ($response)
{

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "www.verhuuropkreta.com/cgi-bin/nl/mail.pl");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);


header("Location: https://www.verhuuropkreta.com/nl/contact/thanks.html");

}
else {
    echo "Form submission mislukt";
}
?>
</body>
</html>

De private key heb je niet nodig. Ik heb voor mijn eigen testdomein zolang mijn eigen Google site key (een V3 key) ingevuld. Je moet daar weer je eigen key invullen.
 
Laatst bewerkt:
Heb 1 x een mail gehad van hans@gmail,com. Ga vanavond de zaak een keer testen.Maaaaar alvast bedankt
 
hans@gmail.com is goed. Dat ben ik. (grapje, ik heet natuurlijk niet Hans) Dan werkt alles naar behoren. Kijk wel goed dat je dingen overneemt zoals ze staan in de code in mijn berichten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan