Recaptcha V2 wordt niet gecontroleerd - andere code

Status
Niet open voor verdere reacties.

damnsharp

Terugkerende gebruiker
Lid geworden
6 jan 2012
Berichten
1.394
Goedemorgen, ook bij mij (zag net een andere vraag met zelfde titel) wordt de Recaptcha v2 niet gecontroleerd bij PHP script van een HTML/PHP website.
Ik heb een captcha in contactformulier code geplaatst van iemand anders. Het leek een eenvoudige klus ;)

Zonder de captcha code is er overigens ook geen controle op verplichte velden, dat zou ook anders mogen.

Kortom willen jullie meekijken hoe ik het anders kan maken?

Wat ik heb toegevoegd aan de code, regel 166,167 en 176,177 en regel
PHP:
<!--google recaptcha toegevoegd door DV-->
<div class="g-recaptcha" data-sitekey="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0"></div>

PHP:
<!--js google recaptcha toegevoegd door DV-->
<script src='https://www.google.com/recaptcha/api.js'></script>

Volledige code:
PHP:
<?php

if(isset($_POST['submit'])){

	//De onderstaande 3 variabelen zijn vrij in te vullen:
	$emailkruse = "bedrijf@bedrijf.nl";	//Het adres waarnaar de mail verzonden wordt
	$onderwerp = "Bericht van de website"; //Het onderwerp van de email
	$nextpage = "Verzonden.php"; //Laat deze pagina als de mail verzonden is.
	$headers = 'From: BEDRIJF Online <noreply@bedrijf.nl>' . "\r\n";
	
	$postcode = $_POST['pc1']." ".strtoupper($_POST['pc2']);
	
	//Bericht opbouwen
	$bericht = 	"Het volgende bericht is binnengekomen op de website op ".date("d-m-Y H:i:s")."\n".
				"\n".
				"Bedrijf:         ".$_POST['bedrijf']."\n".
				"Contactpersoon:  ".$_POST['aanhef']." ".$_POST['naam']."\n".
				"Adres:           ".$_POST['adres']."\n".
				"                 ".$postcode." ".strtoupper($_POST['plaats'])."\n".
				"                 ".$_POST['land']."\n".
				"Telefoonnummer:  ".$_POST['telnr']."\n".
				"Faxnummer:       ".$_POST['faxnr']."\n".
				"Emailadres:      ".$_POST['email']."\n".
				"\n".
				"Zoek contact ".strtolower($_POST['contact'])."\n".
				"\n".
				"*****************************************************************************\n".
				"Opmerkingen:\n".
				"\n".
				$_POST['opmerkingen']."\n".
				"*****************************************************************************\n";
				
	mail($emailkruse,$onderwerp,$bericht,$headers); //Verzend de email
	
	include($nextpage); //Toon de volgende pagina

}
else{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>xxxxxxxxxx | Contactformulier Nederlands</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/colour.css" />
</head>

<body>
  <div id="main">
    <div id="logo">
    </div>
    <div id="menu">
      <ul>
        <li><a href="index_nl3.php">Home</a></li>
        <li><a href="technischadvies.php">Technisch advies</a></li>
        <li><a href="projectmanagement.php">Projectmanagement</a></li>
        <li><a href="onderhoud.php">Onderhoud</a></li>
        <li><a href="producten_nl.php">Producten</a></li>
        <li><a href="referentielijst.php">Referentielijst</a></li>
        <li><a id="selected" href="contact_nl.php">Contact</a></li>
        <li><a href="route.php">Route</a></li>
		</ul>
    </div>
    <div id="content">
      <div id="column1">
	    <?php include("include/vlag.php"); ?>
        <?php include("nieuws/laatste.php"); ?>
        <?php include("nieuws/archief.php"); ?>
        <?php include("nieuws/links.php"); ?>
        <?php include("nieuws/beursbericht.php"); ?>
      </div>
      <div id="column2">
                
        <div><p></p>
          <p><span class="left"><img src="images/xxxxxxxxx.png" alt="Logo" width="193" height="107" /></span></p>
          <h2>xxxxxxxxxxx</h2>
          <p> xxxxxxxxxxx<br /> 
	          
        </div>
        <!-- **** INSERT PAGE CONTENT HERE **** -->
       
       <form name="form1" id="form1" method="post" action="">
		<table border=0 bordercolor=#ffffff>
 			<tr>
  				<td width="138"><span class="story">Bedrijfsnaam</span></td>
  				<td width="15">:</td>
  				<td><input type="text" maxlenght="50" size="45" name="bedrijf" /></td>
 			</tr>
 			<tr>
   				<td><span class="story">Aanhef</span></td>
  				<td width="15">:</td>
  				<td><select name="aanhef">
                  <option value="Dhr.">De Heer</option>
                  <option value="Mevr.">Mevrouw</option>
                </select></td>
		  </tr>
			<tr>
  				<td><span class="story">Naam Contactpersoon</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="naam" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Adres</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="adres" /></td>
		 	</tr>
		 	<tr>
  				<td><span class="story">Postcode</span></td>
				<td width="15">:</td>
  				<td>
					<input type="text" malenght="4" size="8" name="pc1" />
					<input type="text" malenght="2" size="4" name="pc2" />				</td>
 			</tr>
 			<tr>
				<td><span class="story">Plaats</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="plaats" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Land</span></td>
				<td width="15">:</td>
  				<td> 
					<select name="land">
     				<?php
						include("include/inc.landen.php");
						foreach($countries as $land){
							echo "<option value=\"".$land."\">".$land."</option>\n";
						}
					?>
   					</select>				</td>
 			</tr>
 			<tr>
  				<td><span class="story">Telefoonnummer</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="telnr" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">E-mail adres</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="email" /></td>
 			</tr>
 			<tr>
   				<td valign="top"><span class="story">A.u.b. neem contact</span></td>
  				<td width="15" valign="top">:</td> 
   				<td><input type="radio" name="contact" value="Via email" id="mail" checked /><span class="story"><label for="mail">via email<br>
</label>
			    </span><input type="radio" name="contact" value="Via telefoon" id="tel" /><span class="story"><label for="tel">via telefoon </label>
			    </span></td>
		   	</tr>
			<tr>
  				<td valign=top><span class="story">Opmerkingen</span></td>
				<td valign=top width="15">:</td>
 				<td><textarea name="opmerkingen" cols="47" rows="5"></textarea></td>
 			</tr>
 			<tr>
  				<td colspan="2"></td>
				<td>
                <!--google recaptcha toegevoegd door DV-->
                <div class="g-recaptcha" data-sitekey="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0"></div>
                    
					<input name="submit" type="submit" value="Verstuur">&nbsp;
					<input type="reset" value="Reset">				</td>
 			</tr>
		</table>
	  <br/>
 	</form>
          
    <!--js google recaptcha toegevoegd door DV-->
    <script src='https://www.google.com/recaptcha/api.js'></script>
          
        <blockquote>
          <p> K.v.K. xxxxxxxx<br />
              BTW nummer: xxxxxxxxxxxxx          <br />
              IBAN: xxxxxxxxxxxxxxxx<br />
          </p>
        </blockquote>
      </div>
              <li></li>
		</ul>
    </div>
    <div id="footer">
      copyright &copy; 2007 xxxxxxxxx| <a href="mailto:xxxxxxxxxxxx.nl">info</a> |<a href="voorwaarden.php"> Voorwaarden</a> |  <a href="privacypolicy.php">Privacy policy </a>|design by xxxxxxxx</a>
    </div>
  </div>

</body>
</html>

<?php
}
?>
 
Enkel de HTML-code is niet voldoende.
Je moet ook het controlerende PHP-script toevoegen.

Lees ook de gele commentaar-blokken in de code.

PHP:
<?php
$secret="jouw_key";
$response=$_POST["captcha"];

$verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
$captcha_success=json_decode($verify);
if ($captcha_success->success==false) {
  // De controle gaf aan dat het niet succesvol was. Meld dit aan de gebruiker.

}
else if ($captcha_success->success==true) {
// De controle van de re-Captcha is goedgekeurd. Stuur nu de mail.

}
?>
 
Laatst bewerkt:
bedankt @php4u, bedoel je ook het verzonden.php bestand?

Bovenstaande is niet relevant, zie nu dat er code bij je bericht staat @php4u dus nu snap ik wat je bedoelt volgens mij;
Bedoel je dat ik de controle php code aan mijn bestand toe moet voegen?
 
Laatst bewerkt:
Het is een controle, dus dit wil je uitvoeren voordat er gemaild is. Dus verzonden.php is NIET de juiste plek.

Lees de gele commentaar-blokken even goed. Hierin staat wat je op die plekken moet doen.

Trouwens, controleer je nergens of je velden goed ingevuld zijn? Met andere woorden: Iedereen kan van alles invullen.
 
Laatst bewerkt:
Bedankt @php4u ik snap wat je bedoelt en zal het gaan implementeren, als ik er niet uitkom laat ik het weten.

Het is code van iemand anders en daar heb ik captcha toegevoegd. Viel mij ook op dat er geen controle op de velden is. Ik twijfel of ik dat ga aanpassen want de site moet over paar maanden vervangen worden door een CMS site.
 
Oke, succes! Houd ons op de hoogte.
En vergeet geen re-Captcha (secret)key aan te vragen ;).
 
Het gaat toch niet goed; ben hier niet zo goed in :confused:
Krijg foutmelding na klikken op Submit:
Warning: file_get_contents(https://www.google.com/recaptcha/ap...oYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0&response=) [function.file-get-contents]: failed to open stream: Invalid argument in c:\domains\xxxxx.nl\wwwroot\contact_nl-helpmij.php on line 36
Fatal error: Call to undefined function: json_decode() in c:\domains\xxxxx.nl\wwwroot\contact_nl-helpmij.php on line 37

Hoe ik het nu heb geknutseld:
PHP:
<?php

if(isset($_POST['submit'])){

	//De onderstaande 3 variabelen zijn vrij in te vullen:
	$emailkruse = "bedrijf@bedrijf.nl";	//Het adres waarnaar de mail verzonden wordt
	$onderwerp = "Bericht van de website"; //Het onderwerp van de email
	$nextpage = "Verzonden.php"; //Laat deze pagina als de mail verzonden is.
	$headers = 'From: BEDRIJF Online <noreply@bedrijf.nl>' . "\r\n";
	
	$postcode = $_POST['pc1']." ".strtoupper($_POST['pc2']);
	
	//Bericht opbouwen
	$bericht = 	"Het volgende bericht is binnengekomen op de website op ".date("d-m-Y H:i:s")."\n".
				"\n".
				"Bedrijf:         ".$_POST['bedrijf']."\n".
				"Contactpersoon:  ".$_POST['aanhef']." ".$_POST['naam']."\n".
				"Adres:           ".$_POST['adres']."\n".
				"                 ".$postcode." ".strtoupper($_POST['plaats'])."\n".
				"                 ".$_POST['land']."\n".
				"Telefoonnummer:  ".$_POST['telnr']."\n".
				"Faxnummer:       ".$_POST['faxnr']."\n".
				"Emailadres:      ".$_POST['email']."\n".
				"\n".
				"Zoek contact ".strtolower($_POST['contact'])."\n".
				"\n".
				"*****************************************************************************\n".
				"Opmerkingen:\n".
				"\n".
				$_POST['opmerkingen']."\n".
				"*****************************************************************************\n";

    $secret="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0";
    $response=$_POST["captcha"];
 
    $verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
    $captcha_success=json_decode($verify);
    if ($captcha_success->success==false) {
    // De controle gaf aan dat het niet succesvol was. Meld dit aan de gebruiker.
        mail($emailkruse,$onderwerp,$bericht,$headers); //Verzend de email
	    include($nextpage); //Toon de volgende pagina
 
    }
    else if ($captcha_success->success==true) {
    // De controle van de re-Captcha is goedgekeurd. Stuur nu de mail.

    ?>
    <p>niet goed</p>

<?php
}
    
    
	

}
else{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>xxxxxxxxxx | Contactformulier Nederlands</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/colour.css" />
</head>

<body>
  <div id="main">
    <div id="logo">
    </div>
    <div id="menu">
      <ul>
        <li><a href="index_nl3.php">Home</a></li>
        <li><a href="technischadvies.php">Technisch advies</a></li>
        <li><a href="projectmanagement.php">Projectmanagement</a></li>
        <li><a href="onderhoud.php">Onderhoud</a></li>
        <li><a href="producten_nl.php">Producten</a></li>
        <li><a href="referentielijst.php">Referentielijst</a></li>
        <li><a id="selected" href="contact_nl.php">Contact</a></li>
        <li><a href="route.php">Route</a></li>
		</ul>
    </div>
    <div id="content">
      <div id="column1">
	    <?php include("include/vlag.php"); ?>
        <?php include("nieuws/laatste.php"); ?>
        <?php include("nieuws/archief.php"); ?>
        <?php include("nieuws/links.php"); ?>
        <?php include("nieuws/beursbericht.php"); ?>
      </div>
      <div id="column2">
                
        <div><p></p>
          <p><span class="left"><img src="images/xxxxxxxxx.png" alt="Logo" width="193" height="107" /></span></p>
          <h2>xxxxxxxxxxx</h2>
          <p> xxxxxxxxxxx<br /> 
	          
        </div>
        <!-- **** INSERT PAGE CONTENT HERE **** -->
       
       <form name="form1" id="form1" method="post" action="">
		<table border=0 bordercolor=#ffffff>
 			<tr>
  				<td width="138"><span class="story">Bedrijfsnaam</span></td>
  				<td width="15">:</td>
  				<td><input type="text" maxlenght="50" size="45" name="bedrijf" /></td>
 			</tr>
 			<tr>
   				<td><span class="story">Aanhef</span></td>
  				<td width="15">:</td>
  				<td><select name="aanhef">
                  <option value="Dhr.">De Heer</option>
                  <option value="Mevr.">Mevrouw</option>
                </select></td>
		  </tr>
			<tr>
  				<td><span class="story">Naam Contactpersoon</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="naam" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Adres</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="adres" /></td>
		 	</tr>
		 	<tr>
  				<td><span class="story">Postcode</span></td>
				<td width="15">:</td>
  				<td>
					<input type="text" malenght="4" size="8" name="pc1" />
					<input type="text" malenght="2" size="4" name="pc2" />				</td>
 			</tr>
 			<tr>
				<td><span class="story">Plaats</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="plaats" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Land</span></td>
				<td width="15">:</td>
  				<td> 
					<select name="land">
     				<?php
						include("include/inc.landen.php");
						foreach($countries as $land){
							echo "<option value=\"".$land."\">".$land."</option>\n";
						}
					?>
   					</select>				</td>
 			</tr>
 			<tr>
  				<td><span class="story">Telefoonnummer</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="telnr" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">E-mail adres</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="email" /></td>
 			</tr>
 			<tr>
   				<td valign="top"><span class="story">A.u.b. neem contact</span></td>
  				<td width="15" valign="top">:</td> 
   				<td><input type="radio" name="contact" value="Via email" id="mail" checked /><span class="story"><label for="mail">via email<br>
</label>
			    </span><input type="radio" name="contact" value="Via telefoon" id="tel" /><span class="story"><label for="tel">via telefoon </label>
			    </span></td>
		   	</tr>
			<tr>
  				<td valign=top><span class="story">Opmerkingen</span></td>
				<td valign=top width="15">:</td>
 				<td><textarea name="opmerkingen" cols="47" rows="5"></textarea></td>
 			</tr>
 			<tr>
  				<td colspan="2"></td>
				<td>
                <!--google recaptcha toegevoegd door DV-->
                <div class="g-recaptcha" data-sitekey="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0"></div>
                    
					<input name="submit" type="submit" value="Verstuur">&nbsp;
					<input type="reset" value="Reset">				</td>
 			</tr>
		</table>
	  <br/>
 	</form>
          
    <!--js google recaptcha toegevoegd door DV-->
    <script src='https://www.google.com/recaptcha/api.js'></script>

        <blockquote>
          <p> K.v.K. xxxxxxxx<br />
              BTW nummer: xxxxxxxxxxxxx          <br />
              IBAN: xxxxxxxxxxxxxxxx<br />
          </p>
        </blockquote>
      </div>
              <li></li>
		</ul>
    </div>
    <div id="footer">
      copyright &copy; 2007 xxxxxxxxx| <a href="mailto:xxxxxxxxxxxx.nl">info</a> |<a href="voorwaarden.php"> Voorwaarden</a> |  <a href="privacypolicy.php">Privacy policy </a>|design by xxxxxxxx</a>
    </div>
  </div>

</body>
</html>

<?php
}
?>
 
Welke PHP-versie draai je?
Wat zegt:
PHP:
<?php
phpinfo();
?>
(In een los script)

En lees je commentaar even goed door. Je draait het nu om!
 
Laatst bewerkt:
Gedaan... een hele oude versie zie ik :( PHP Version 4.4.9
 
14 jaar oud!!!!
Zet deze server graag in het museum ;-)
 
Wat denk je, zal ik maar tegen de klant zeggen dat het niet gaat omdat de server te oud is? Of is er nog een oplossing te bedenken; het kan zeker ook een andere captcha check zijn; als er maar even wat staat.

Was mijn manier van jouw code toevoegen wel goed eigenlijk?
 
Wat denk je, zal ik maar tegen de klant zeggen dat het niet gaat omdat de server te oud is? Of is er nog een oplossing te bedenken; het kan zeker ook een andere captcha check zijn; als er maar even wat staat.
Om eerlijk te zeggen: Je kan beter tegen je klant zeggen dat ze de server echt nodig moeten (laten) updaten.
Welke Windows draait er op?
Hun server staat eigenlijk open voor diverse veiligheidslekken die Windows, PHP en IIS (als dat als webserver gebruikt wordt) ooit gekend heeft in de afgelopen 15 jaar.
Ze brengen immers niet voor niets updates uit. Eigenlijk moet die server gewoon direct vervangen worden en de oude uitgeschakeld worden!

Een andere oplossing is er niet. Een andere captcha zou kunnen maar er worden tegenwoordig zoveel functies in PHP gebruikt die niet in PHP 4 zaten, waardoor het lastig zoeken en programmeren is.
Ook als er een nieuw CMS gaat komen zal er een update moeten komen van de server. Ik hoop dat dit in de planning staat. Want niemand houdt nog rekening met PHP 4.

Was mijn manier van jouw code toevoegen wel goed eigenlijk?
De implementatie is verder bijna goed, maar niet helemaal.
PHP:
<?php
$captcha_success=json_decode($verify);
    if ($captcha_success->success==false) {
    // De controle gaf aan dat het niet succesvol was. Meld dit aan de gebruiker.
        mail($emailkruse,$onderwerp,$bericht,$headers); //Verzend de email
        include($nextpage); //Toon de volgende pagina
 
    }
    else if ($captcha_success->success==true) {
    // De controle van de re-Captcha is goedgekeurd. Stuur nu de mail.
}
?>
Nee, dit is niet de goede volgorde, als je goed leest ;)
Plus dat je wel moet doen wat de commentaarlijnen schrijven.

Nu verzend je dus de mail als het de controle niet goed is??
En meld je niks als het wel goed gaat?
 
Laatst bewerkt:
Oh ja, inderdaad de informatie moet wel op de juiste plek komen te staan, zal aan mijn dyslectie liggen ;-) Heb ze omgedraaid.

Ze willen de site nog paar maanden gedraaid hebben, maar ik wijs ze op de gevaren.

Wat vind je van het volgende om het met beetje PHP en CSS op te lossen?
Iemand heeft daar wat over geschreven, namelijk een extra veld toevoegen en dat te verbergen met CSS. Als dat niet is ingevuld dan is door een mens een formulier ingevuld. Anders is het door een robot ingevuld.
Zie deze website.

Of heb jij misschien een simpel getal captcha voorbeeld voor me wat ik kan implementeren?
 
ReCaptcha is in mijn ogen de enige goede oplossing tegen spam. Die zorgt ervoor dat Google controleert of je bezoekers ook échte bezoekers zijn. En dus laat je het controleren aan de 'cloud' over :).

De meeste bots kennen de truukjes met CSS al.
Maar dan moet je wel PHP updaten.

Ik ben wel benieuwd welke Windows en IIS ze nog draaien?
Maar als hun nieuwe CMS er komt, komt die dan wel op een nieuwe server te staan?
 
Laatst bewerkt:
ReCaptcha is in mijn ogen de enige goede oplossing tegen spam.
De meeste bots kennen de truukjes met CSS al.
Maar dan moet je wel PHP updaten.

of je kan natuurlijk een vraag stellen die gerelateerd is aan de website.
- Wat verkopen wij? [........................]
- Welke kleur is ons logo? [.................]
- In welke woonplaats zijn wij gevestigd? [.................]
etc...

Ik ben wel benieuwd welke Windows en IIS ze nog draaien?
Maar als hun nieuwe CMS er komt, komt die dan wel op een nieuwe server te staan?
 
Laatst bewerkt:
Bedankt @php4u, ik schrijf de (nieuwe) klant dat het niet gaat werken en dat ze snel over moeten naar andere server en website.
Leer voor mij volgende keer is eerst de PHP versie uit te zoeken.
 
Laatst bewerkt:
Dat lijkt mij de beste oplossing. Hopelijk gaat dit snel gebeuren.
Laat ons graag weten hoe het afgelopen is. :)

Tevens moet die server echt nodig vervangen worden. PHP is in 2008 voor het laatste geinstalleerd.
Dus de server zelf ook.... Hopelijk doen ze er niet al hun werk er nog op.

(PS: Ja, ik heb een beetje zitten Googlen om uit te vinden wat de site was, en waar de versie te vinden was. Uiteraard zonder kwade intentie. Het bestand waarin de versie staat mag je wel hernoemen of verwijderen)
 
Laatst bewerkt:
@php4u oh geen probleem je laatste opmerking; geen geheim ook.

De server kan gelukkig geupgrade worden naar php 7.2 dus dat is fijn. Heb op mijn test server met php 7.2 getest en daar werkt de site dan nog, pffff ;-)

Vraag: ik heb nu de volgende code die de check doet en dat werkt goed (op mijn test server) maar nog wel een vraag erover. Als de captcha niet ingevuld wordt, dan wil ik een tekst laten zien. Dat heb ik nu gedaan maar dat komt op een volgende lege pagina te staan. Kan dat anders?

Stukje code:
PHP:
    $secret="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0";
    $response=$_POST["captcha"];
 
    $verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
    $captcha_success=json_decode($verify);
    if ($captcha_success->success==false) {
    // De controle gaf aan dat het niet succesvol was. Meld dit aan de gebruiker.
    ?>
    <p>vul opnieuw de gegevens in</p>
    <?php
    }
    else if ($captcha_success->success==true) {
    // De controle van de re-Captcha is goedgekeurd. Stuur nu de mail.
        mail($emailkruse,$onderwerp,$bericht,$headers); //Verzend de email
	    include($nextpage); //Toon de volgende pagina
    ?>
<?php
}
}
else{

?>
 
Al opgelost, heb een niet-verzonden.php pagina aangemaakt en roep die aan via include.
Nu in de live omgeving zetten en ben benieuwd! Fingers crossed.
 
Verdummeles... het leek opgelost te zijn maar als de captcha is ingevuld kom ik ook bij de pagina terecht dat de captcha NIET is ingevuld.

@php4u wil je kijken wat er mis gaat? Bedankt!

PHP:
<?php

if(isset($_POST['submit'])){

	//De onderstaande 3 variabelen zijn vrij in te vullen:
	$emailkruse = "info@bedrijfsnaam.nl";	//Het adres waarnaar de mail verzonden wordt
	$onderwerp = "Bericht van de website"; //Het onderwerp van de email
	$nextpage = "Verzonden.php"; //Laat deze pagina als de mail verzonden is.
    $faultpage = "niet-verzonden.php"; //Laat deze pagina als de mail verzonden is.
	$headers = 'From: XXXXX <noreply@bedrijfsnaam.nl>' . "\r\n";
	
	$postcode = $_POST['pc1']." ".strtoupper($_POST['pc2']);
	
	//Bericht opbouwen
	$bericht = 	"Het volgende bericht is binnengekomen op de website op ".date("d-m-Y H:i:s")."\n".
				"\n".
				"Bedrijf:         ".$_POST['bedrijf']."\n".
				"Contactpersoon:  ".$_POST['aanhef']." ".$_POST['naam']."\n".
				"Adres:           ".$_POST['adres']."\n".
				"                 ".$postcode." ".strtoupper($_POST['plaats'])."\n".
				"                 ".$_POST['land']."\n".
				"Telefoonnummer:  ".$_POST['telnr']."\n".
				"Faxnummer:       ".$_POST['faxnr']."\n".
				"Emailadres:      ".$_POST['email']."\n".
				"\n".
				"Zoek contact ".strtolower($_POST['contact'])."\n".
				"\n".
				"*****************************************************************************\n".
				"Opmerkingen:\n".
				"\n".
				$_POST['opmerkingen']."\n".
				"*****************************************************************************\n";
				
    $secret="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0";
    $response=$_POST["captcha"];
 
    $verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
    $captcha_success=json_decode($verify);
    if ($captcha_success->success==false) {
    // De controle gaf aan dat het niet succesvol was. Meld dit aan de gebruiker.
    include($faultpage); //Toon de volgende pagina
    ?>
    <?php
    }
    else if ($captcha_success->success==true) {
    // De controle van de re-Captcha is goedgekeurd. Stuur nu de mail.
        mail($emailkruse,$onderwerp,$bericht,$headers); //Verzend de email
	    include($nextpage); //Toon de volgende pagina
    ?>
<?php
}
}
else{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>Bedrijfsnaam-bv | Contactformulier Nederlands</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="css/style/colour.css" />
</head>

<body>
  <div id="main">
    <div id="logo">
    </div>
    <div id="menu">
      <ul>
        <li><a href="index_nl3.php">Home</a></li>
        <li><a href="technischadvies.php">Technisch advies</a></li>
        <li><a href="projectmanagement.php">Projectmanagement</a></li>
        <li><a href="onderhoud.php">Onderhoud</a></li>
        <li><a href="producten_nl.php">Producten</a></li>
        <li><a href="referentielijst.php">Referentielijst</a></li>
        <li><a id="selected" href="contact_nl.php">Contact</a></li>
        <li><a href="route.php">Route</a></li>
		</ul>
    </div>
    <div id="content">
      <div id="column1">
	    <?php include("include/vlag.php"); ?>
        <?php include("nieuws/laatste.php"); ?>
        <?php include("nieuws/archief.php"); ?>
        <?php include("nieuws/links.php"); ?>
        <?php include("nieuws/beursbericht.php"); ?>
      </div>
      <div id="column2">
                
        <div><p></p>
          <p><span class="left"><img src="images/logo_kemp.png" alt="Logo Kemp" width="193" height="107" /></span></p>
	          
        </div>
        <!-- **** INSERT PAGE CONTENT HERE **** -->
       
       <form name="form1" id="form1" method="post" action="">
		<table border=0 bordercolor=#ffffff>
 			<tr>
  				<td width="138"><span class="story">Bedrijfsnaam</span></td>
  				<td width="15">:</td>
  				<td><input type="text" maxlenght="50" size="45" name="bedrijf" /></td>
 			</tr>
 			<tr>
   				<td><span class="story">Aanhef</span></td>
  				<td width="15">:</td>
  				<td><select name="aanhef">
                  <option value="Dhr.">De Heer</option>
                  <option value="Mevr.">Mevrouw</option>
                </select></td>
		  </tr>
			<tr>
  				<td><span class="story">Naam Contactpersoon</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="naam" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Adres</span></td>
  				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="adres" /></td>
		 	</tr>
		 	<tr>
  				<td><span class="story">Postcode</span></td>
				<td width="15">:</td>
  				<td>
					<input type="text" malenght="4" size="8" name="pc1" />
					<input type="text" malenght="2" size="4" name="pc2" />				</td>
 			</tr>
 			<tr>
				<td><span class="story">Plaats</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="plaats" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">Land</span></td>
				<td width="15">:</td>
  				<td> 
					<select name="land">
     				<?php
						include("include/inc.landen.php");
						foreach($countries as $land){
							echo "<option value=\"".$land."\">".$land."</option>\n";
						}
					?>
   					</select>				</td>
 			</tr>
 			<tr>
  				<td><span class="story">Telefoonnummer</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="telnr" /></td>
 			</tr>
 			<tr>
  				<td><span class="story">E-mail adres</span></td>
				<td width="15">:</td>
  				<td><input type="text" malenght="50" size="45" name="email" /></td>
 			</tr>
 			<tr>
   				<td valign="top"><span class="story">A.u.b. neem contact</span></td>
  				<td width="15" valign="top">:</td> 
   				<td><input type="radio" name="contact" value="Via email" id="mail" checked /><span class="story"><label for="mail">via email<br>
</label>
			    </span><input type="radio" name="contact" value="Via telefoon" id="tel" /><span class="story"><label for="tel">via telefoon </label>
			    </span></td>
		   	</tr>
			<tr>
  				<td valign=top><span class="story">Opmerkingen</span></td>
				<td valign=top width="15">:</td>
 				<td><textarea name="opmerkingen" cols="47" rows="5"></textarea></td>
 			</tr>
 			<tr>
  				<td colspan="2"></td>
				<td>
                <!--google recaptcha toegevoegd door DV-->
                <div class="g-recaptcha" data-sitekey="6LfzKoYUAAAAAN1kuVbHSBeUYrGm5BqZyl_WtIU0"></div>
                    
					<input name="submit" type="submit" value="Verstuur">&nbsp;
					<input type="reset" value="Reset">				</td>
 			</tr>
		</table>
	  <br/>
 	</form>
          
    <!--js google recaptcha toegevoegd door DV-->
    <script src='https://www.google.com/recaptcha/api.js'></script>
          
        <blockquote>
        </blockquote>
      </div>
              <li></li>
		</ul>
    </div>
    <div id="footer">
    </div>
  </div>

</body>
</html>

<?php
}
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan