Eurobiljet checker
Auteur: Rens - 05 februari 2006 - 15:37 - Gekeurd door: nemesiskoen - Hits: 7460 - Aantal punten: 3.60 (5 stemmen)
Naar aanleiding van dit bericht kwam ik erop om het script te maken.
Op deze site zie je de gegevens die ik gebruikt heb.
Werking:
Het script pakt van het serienummer de letter, die staat voorop.
Vervolgens word de checksum berekent.
Dit word gedaan door de getallen bij elkaar op te tellen.
Het getal wat hieruit komt, word vervolgens nog een keer opgeteld.
Dus als je S01112777215 hebt:
01112777215 worden bij elkaar opgeteld.
0+1+1+1+2+7+7+7+2+1+5 = 34.
3+4 = 7.
Nu weet je de letter, namelijk S, en de checksum, namelijk 7.
Dan hoef je alleen nog maar uit te lezen welk land gebruik maakt van de letter S, en de checksum 7.
Dit is Italië.
Gebruiken:
Je hoeft niks aan te passen in het script.
Je kopieërt het, je plakt het, je slaat het op als een .php bestand en je kunt het gebruiken.
Je zou natuurlijk ook even naar de werking kunnen kijken...
|
Code: |
<?PHP
error_reporting(E_ALL);
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> -= EuroBiljet =- </title>
</head>
<body>
<?PHP
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(empty($_POST['sn']))
{
$aError[] = "Je hebt het serienummer niet ingevuld.\n";
}
if(!ereg("^[a-zA-Z]", $_POST['sn']) || !ctype_digit (subStr ($_POST['sn'], 1)))
{
$aError[] = "Je hebt geen geldig serienummer ingevuld.\n";
}
if(IsSet($aError))
{
?>
<table style="border: 1px solid #000000; width: 80%;">
<tr>
<td style="border: 1px solid #000000;">
Kijk of een eurobiljet echt is en waar het vandaan komt!
</td>
</tr>
<?PHP
for($i = 0; $i < count($aError); $i++)
{
?>
<tr>
<td style="border: 1px solid #000000;">
<?=$aError[$i];?>
</td>
</tr>
<?PHP
}
?>
<tr>
<td style="border: 1px solid #000000;">
<a href="javascript:history.go(-1);">Keer terug</a>.
</td>
</tr>
</table>
<?PHP
} else
{
$sLetter = subStr($_POST['sn'], 0, 1);
$iCijfers = subStr($_POST['sn'], 1, strLen($_POST['sn']));
for($i = 0; $i < strLen($iCijfers); $i++)
{
$aCijfers[] = $iCijfers{$i};
}
$iTotaal = 0;
for($i = 0; $i < count($aCijfers); $i++)
{
$iTotaal += $aCijfers[$i];
}
function optellen($sGetal)
{
$iGetal = 0;
for($i = 0; $i < strLen($sGetal); $i++)
{
$iGetal += subStr($sGetal, ($i), $i+1);
}
return $iGetal;
}
while(strLen($iTotaal) != 1)
{
$iTotaal = optellen($iTotaal);
}
$iChecksum = $iTotaal;
// De landen Denemarken, Zweden en het Verenigd Koninkrijk nemen (nog) geen deel aan de euro
// maar staan er wel tussen.
// Ze staan er tussen omdat deze alvast gereserveerd zijn voor als ze ooit mee gaan doen
$aCodes = array("z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j");
$aLanden = array("België", "Griekenland", "Duitsland", "Denemarken", "Spanje", "Frankrijk", "Ierland", "Italië", "Luxemburg", "n/a", "Nederland", "n/a", "Oostenrijk", "Portugal", "Finland", "Zweden", "Verenigd Koninkrijk");
$aChecksum = array(9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7);
for($i = 0; $i < count($aCodes); $i++)
{
if( ($aChecksum[$i] == $iChecksum) && ($aCodes[$i] == strToLower($sLetter)) )
{
$bOutput = true;
?>
<table style="border: 1px solid #000000; width: 80%;">
<tr>
<td colspan="2" style="border: 1px solid #000000;">
Kijk of een eurobiljet echt is en waar het vandaan komt!
</td>
</tr>
<tr>
<td style="width: 20%; border: 1px solid #000000;">
Land van herkomst:
</td>
<td style="width: 80%; border: 1px solid #000000;">
<?=$aLanden[$i];?>
</td>
</tr>
<tr>
<td style="width: 20%; border: 1px solid #000000;">
Checksum:
</td>
<td style="width: 80%; border: 1px solid #000000;">
<?=$aChecksum[$i];?>
</td>
</tr>
<tr>
<td style="width: 20%; border: 1px solid #000000;">
Landcode:
</td>
<td style="width: 80%; border: 1px solid #000000;">
<?=$aCodes[$i];?>
</td>
</tr>
</table>
<?PHP
}
}
if((!IsSet($bOutput)) || ($bOutput === false))
{
echo $iChecksum;
?>
<table style="border: 1px solid #000000; width: 80%;">
<tr>
<td style="border: 1px solid #000000;">
Kijk of een eurobiljet echt is en waar het vandaan komt!
</td>
</tr>
<tr>
<td style="width: 100%; border: 1px solid #000000;">
Het opgegeven nummer is niet correct.<br />
<a href="javascript:history.go(-1);">Keer terug</a>.
</td>
</tr>
</table>
<?PHP
}
}
} else
{
?>
<form method="post" action="<?=$_SERVER['REQUEST_URI'];?>">
<table style="border: 1px solid #000000; width: 80%;">
<tr>
<td colspan="2" style="border: 1px solid #000000;">
Kijk of een eurobiljet echt is en waar het vandaan komt!
</td>
</tr>
<tr>
<td style="width: 20%; border: 1px solid #000000;">
Serienummer:
</td>
<td style="width: 80%; border: 1px solid #000000;">
<div style="text-align: center;">
<input type="text" name="sn" value="" maxlength="255" style="width: 90%;" />
</div>
</td>
</tr>
<tr>
<td colspan="2" style="border: 1px solid #000000;">
<div style="text-align: center;">
<input type="submit" name="submit" value="Checken!" style="border: 1px solid #000000; width: 20%;" />
<input type="reset" name="reset" value="Leeg velden!" style="border: 1px solid #000000; width: 20%;" />
</div>
</td>
</tr>
</table>
</form>
<?PHP
}
?>
</body>
</html>
<?PHP ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> -= EuroBiljet =- </title> </head> <body> <?PHP if($_SERVER['REQUEST_METHOD'] == "POST") { { $aError[] = "Je hebt het serienummer niet ingevuld.\n"; } { $aError[] = "Je hebt geen geldig serienummer ingevuld.\n"; } { ?> <table style="border: 1px solid #000000; width: 80%;"> <tr> <td style="border: 1px solid #000000;"> Kijk of een eurobiljet echt is en waar het vandaan komt! </td> </tr> <?PHP for($i = 0; $i < count($aError); $i++) { ?> <tr> <td style="border: 1px solid #000000;"> <?=$aError[$i];?> </td> </tr> <?PHP } ?> <tr> <td style="border: 1px solid #000000;"> <a href="javascript:history.go(-1);">Keer terug</a>. </td> </tr> </table> <?PHP } else { $sLetter = subStr($_POST['sn'], 0, 1); for($i = 0; $i < strLen($iCijfers); $i++) { $aCijfers[] = $iCijfers{$i}; } $iTotaal = 0; for($i = 0; $i < count($aCijfers); $i++) { $iTotaal += $aCijfers[$i]; } function optellen($sGetal) { $iGetal = 0; for($i = 0; $i < strLen($sGetal); $i++) { $iGetal += subStr($sGetal, ($i), $i+1); } return $iGetal; } { $iTotaal = optellen($iTotaal); } $iChecksum = $iTotaal; // De landen Denemarken, Zweden en het Verenigd Koninkrijk nemen (nog) geen deel aan de euro // maar staan er wel tussen. // Ze staan er tussen omdat deze alvast gereserveerd zijn voor als ze ooit mee gaan doen $aCodes = array("z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j"); $aLanden = array("België", "Griekenland", "Duitsland", "Denemarken", "Spanje", "Frankrijk", "Ierland", "Italië", "Luxemburg", "n/a", "Nederland", "n/a", "Oostenrijk", "Portugal", "Finland", "Zweden", "Verenigd Koninkrijk"); $aChecksum = array(9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7); for($i = 0; $i < count($aCodes); $i++) { if( ($aChecksum[$i] == $iChecksum) && ($aCodes[$i] == strToLower($sLetter)) ) { $bOutput = true; ?> <table style="border: 1px solid #000000; width: 80%;"> <tr> <td colspan="2" style="border: 1px solid #000000;"> Kijk of een eurobiljet echt is en waar het vandaan komt! </td> </tr> <tr> <td style="width: 20%; border: 1px solid #000000;"> Land van herkomst: </td> <td style="width: 80%; border: 1px solid #000000;"> <?=$aLanden[$i];?> </td> </tr> <tr> <td style="width: 20%; border: 1px solid #000000;"> Checksum: </td> <td style="width: 80%; border: 1px solid #000000;"> <?=$aChecksum[$i];?> </td> </tr> <tr> <td style="width: 20%; border: 1px solid #000000;"> Landcode: </td> <td style="width: 80%; border: 1px solid #000000;"> <?=$aCodes[$i];?> </td> </tr> </table> <?PHP } } if((!IsSet($bOutput)) || ($bOutput === false)) { ?> <table style="border: 1px solid #000000; width: 80%;"> <tr> <td style="border: 1px solid #000000;"> Kijk of een eurobiljet echt is en waar het vandaan komt! </td> </tr> <tr> <td style="width: 100%; border: 1px solid #000000;"> Het opgegeven nummer is niet correct.<br /> <a href="javascript:history.go(-1);">Keer terug</a>. </td> </tr> </table> <?PHP } } } else { ?> <form method="post" action="<?=$_SERVER['REQUEST_URI'];?>"> <table style="border: 1px solid #000000; width: 80%;"> <tr> <td colspan="2" style="border: 1px solid #000000;"> Kijk of een eurobiljet echt is en waar het vandaan komt! </td> </tr> <tr> <td style="width: 20%; border: 1px solid #000000;"> Serienummer: </td> <td style="width: 80%; border: 1px solid #000000;"> <div style="text-align: center;"> <input type="text" name="sn" value="" maxlength="255" style="width: 90%;" /> </div> </td> </tr> <tr> <td colspan="2" style="border: 1px solid #000000;"> <div style="text-align: center;"> <input type="submit" name="submit" value="Checken!" style="border: 1px solid #000000; width: 20%;" /> <input type="reset" name="reset" value="Leeg velden!" style="border: 1px solid #000000; width: 20%;" /> </div> </td> </tr> </table> </form> <?PHP } ?> </body> </html>
Download code (.txt)
|
|
|
Stemmen |
Niet ingelogd. |
|