Scripts

Captcha Sommetjes

(Ik heb hem maar even onder beveiliging gezet) Vandaag post ik een script die een ander soort 'Captcha' test uitvoert.. voor de mensen die niet weten wat Captcha is de volgende uitleg: ----------------------------------------------------- Je bent het zeker weten al eens tegengekomen (misschien zelfs hier bij het registreren op phphulp.nl) ..Tijdens het aanmelden word gevraagd om een 'tekeningetje' met schots en scheve letters over te tikken.. dit heet een Captcha test.. de bedoeling hiervan is om zeker te weten dat een 'mens' zich aangemeld heeft en niet een script ofzo (een script kan ten slotte niet de letters van een plaatje intoetsen in het juiste hokje) Genoeg hierover voor wie meer wil weten: WIKIPEDIA ========================== Deze versie van Captcha geeft een bijzonder soort plaatje.. het is een rekensom. Je hoeft dus niet over te tikken maar je moet er zelfs nog ff bij nadenke op bassischool niveau ;) hieronder volgt de code:

captcha-sommetjes
index.php
==========
[code]
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST') //kijken of knop is ingedrukt
{
function verifieer()   
{
$imgcode = $_POST['imgcode'];   
$randomnummer = $_POST['randomnummer']; 
require_once('sommen.php');  // de file waar de sommen instaan zie onder
if(empty($imgcode)): //kijken of er iets is ingevuld
$fout = 1;
$foutstr[] = "Ey n00b je moet het antwoord geven van de som";
elseif ($imgcode !== $randomnummer_val): //kijken of het goed is ingevuld
$fout = 1;
$foutstr[] = "Oyoooo jij bent ECHT slecht, FOUt antwoord..terug naar de bassisschool";
endif;

//fouten weergeven zodat de gebruiker ook nog wat te zien krijgt        
if ($fout == 1):
foreach($foutstr as $bericht)
{
echo ''.$bericht.'<br /> <a href='.$_SERVER['PHP_SELF'].'>nogmaals proberen?</a>';
}
exit;
endif;
}

verifieer();



// dit hieronder geeft die weer als dus alles succesvol ging
?>
<div align="center">
<p>Goedzo</p>  
</div>
<?php
	
}else{    
// als de knop niet is ingedrukt gaat hij dus
// naar het invoer gedeelte hieronder dus
$randomnummer = rand(0,5);  // kies een nummer vanaf 0 tot 5 
require_once('sommen.php');  


// en hieronder nog het captcha formulier natuurlijk
?>

</p>

<center>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
 <input type="hidden" name="randomnummer" value="<?php echo $randomnummer; ?>" />
            Wat is de uitkomst van de som in het plaatje?<br />
          <img src="inc/img<?php echo $randomnummer;?>.php" width="150" height="30" border="0" alt="<?php echo $randomnummer_alt; ?>" /><br />
          <span class="red">Antwoord hier:</span>&nbsp;&nbsp;<input type="text" name="imgcode" id="imgcode" maxlength="3" size="2" />
      </p>
      <input type="submit" name="submit" value="Toegang" />
    </form>
</center>
<?php } ?>
  </div>
</body>
</html>
[/code]


sommen.php
========
[code]
<?php

switch($randomnummer){
case 0:$randomnummer_alt='AchtEnNegentig+Drie';$randomnummer_val='101';break;
case 1:$randomnummer_alt='AchtenNegentig+Twee';$randomnummer_val='100';break;
case 2:$randomnummer_alt='Drie+Acht';$randomnummer_val='11';break;
case 3:$randomnummer_alt='Acht+Acht';$randomnummer_val='16';break;
case 4:$randomnummer_alt='Acht+Twee';$randomnummer_val='10';break;
case 5:$randomnummer_alt='Acht+Zeven';$randomnummer_val='15';break;
//je kan er nog zoveel toevoegen als je zelf wilt.. zie het voorbeeld maar
// de opbouw is gewoon de 
//$randomnummer_alt omschrijving... (dus je som in woorden) gevolgd door
//$randomnummer_val value (je antwoord dus van die som)..
?>
[/code]

in de map [b]INC[/b] maak je per som een php file aan:
zoals volgt:
- inc/img0.php
- inc/img1.php
- inc/img2.php
etc....

in deze files komt het volgende te staan:
- img0.php
[code]
<?php include_once('../img/img_0.jpg');?>
[/code]
- img1.php
[code]
<?php include_once('../img/img_1.jpg');?>
[/code]
[code]
in de map IMG zetten we alle captcha plaatjes...
[/code]

Ik zoek alleen nog een betere manier om deze img0.php etc.. in 1 file te dumpe dat scheelt een hoop files.. iemand goed ideetje?

Reacties

0
Nog geen reacties.