Hier kannst Du das Script downloaden:
Download
Mit dieser Variante eine Grafik mit einem Code anzuzeigen, stellen Sie sicher, dass der Benutzer das Formular auf Ihrer Seite selbst ausgefüllt hat. Um das folgende Script bei Ihnen lauffähig zu machen, müssen auf Ihrem Webserver die PHP-Grafikfunktionen aktiviert sein. Zudem brauchen Sie eine Schriftart, mit der der Code auf die Grafik geschrieben wird. Diese Schriftart ist zusammen mit dem Quellcode im Download zu diesem Artikel enthalten.
Zuerst das Formular zur Aufnahme des Codes, welches Sie selbstverständlich mit beliebig weiteren Formularfeldern erweitern können.
1 <html>
2 <head>
3 <title>Sicherheitsabfrage mit Hilfe eines grafischen Codes</title>
4 </head>
5 <body>
6 <?php
7
8 $Buchstaben=array("A", "B", "C", "D", "E", "F", "G", "H", "K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y");
9 $Zahlen=array("2", "3", "4", "5", "6", "7", "8", "9");
10
11 for($i=0, $Code=""; strlen($Code)<6; $i++)
12 {
13 if(rand(0, 1)==0 && isset($Buchstaben))
14 {
15 $Buchstabe=$Buchstaben[rand(0, count($Buchstaben))];
16 $Code.=$Buchstabe;
17 $AngezeigterCode.=$Buchstabe." ";
18 }
19 else
20 {
21 $Zahl=$Zahlen[rand(0, count($Zahlen))];
22 $Code.=$Zahl;
23 $AngezeigterCode.=$Zahl." ";
24 }
25 }
26 $AngezeigterCode=trim($AngezeigterCode);
27
28 ?>
29 <form action="auswerten.php" method="post">
30 <input name="Code" type="hidden" value="<?php echo$Code; ?>">
31 Code: <input maxlength="6" name="EingegebenerCode" size="6" type="text"> <img border="0" height="50" src="grafischer-code.php?Code=<?php echo$AngezeigterCode; ?>" width="200"><br>
32 <input type="submit" value="Absenden">
33 </form>
34
35 </body>
36 </html>
Zuerst wird ein zufälliger Code bestehend aus sechs Buchstaben oder Zahlen generiert und als versteckte Variable dem Formular mitgegeben.
Die in Zeile 31 aufgerufene Grafik wird vom nachstehenden Script dynamisch erzeugt:
1 <?php
2
3 $Grafik=imagecreatefrompng("hintergrund.png");
4 $Rahmenmass=imagettfbbox(20, 0, "mistralf", $_REQUEST['Code']);
5 $Rahmenmass[5]*=-1;
6 $TextBreite=(200-$Rahmenmass[2])/2;
7 $TextHoehe=((50-$Rahmenmass[5])+($Rahmenmass[5]*2))/2;
8
9 $Textfarbe = imagecolorallocate($Grafik, 128, 128, 128);
10 imagettftext($Grafik, 20, 0, $TextBreite, $TextHoehe, $Textfarbe, "mistralf", $_REQUEST['Code']);
11 imagepng($Grafik);
12
13 ?>
Auf die Grafik "hintergrund.png" wird in diesem Script mittig in der Schriftart "Mistral" der generierte Code geschrieben und die Grafik anschließend ausgegeben.
Auswerten können Sie das Formular dann mit Hilfe dieses PHP-Scriptes:
1 <html>
2 <head>
3 <title>Sicherheitsabfrage mit Hilfe eines grafischen Codes</title>
4 </head>
5 <body>
6 <?php
7
8 if(strtolower($_REQUEST['Code']) == strtolower($_REQUEST['EingegebenerCode']))
9 {
10 echo"Der Code wurde richtig eingegeben!";
11 }
12 else
13 {
14 echo"Der Code wurde fehlerhaft eingegeben!";
15 }
16
17 ?>
18 </body>
19 </html>