Artikel-Infos
  druckbare Version anzeigen Druckansicht   Artikel empfehlen Seite empfehlen
 
    kommentieren 2 Kommentar(e)   Wertung ø 10,00
1 Stimme(n)

Artikel » Coding » Alter via Personalausweis überprüfen
   

Alter via Personalausweis überprüfen
27.09.2006 von WEBI

Mit dieser Funktion könnt ihr die Personalausweis-Nummer (Personalausweis der BR Deutschland) nutzen, um eine Alterkontrolle einzurichten. Der Code überprüft dabei nicht nur das Alter sondern auch die eigentliche Richtigkeit der Nummer anhand von 4 Prüfziffern.

Hier ein Link, zum testen: Tutorial - Test - Personalausweiss Nummer

Ihr legt euch eine neue .php Datei an, ich habe mich in dem Fall für den Namen "perso.php" entschieden. In dieser fügt ihr folgendes hinein:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

PHP-Quelltext

<?php
function check_age_by_perso($perso$age=18) {
    if(!
function_exists("pruefziffer")) {
        function 
pruefziffer($zahl$suf=TRUE) {
            
$multi = array(7,3,1);
            
$h 0;
            for(
$i=0$i<strlen($zahl); $i++) {
                
$g $multi[($i%3)];
                
$h $h $zahl[$i]*$g;
            }
            
settype($h"string");
            if(
$suf) {
                
$pruefziffer $zahl.$h[strlen($h)-1];
            } else {
                
$pruefziffer $h[strlen($h)-1];
            }
            return 
$pruefziffer;
        }
    }
    if (
preg_match('/^([0-9]{10})([A-Z]{1}) ([0-9]{7}) ([0-9]{7}) ([0-9]{1})$/si',$perso)) {
        
$parts explode(" "$perso);
        
$p1 pruefziffer(substr($parts[0], 0strlen($parts[0])-2));
        
$p2 pruefziffer(substr($parts[1], 0strlen($parts[1])-1));
        
$p3 pruefziffer(substr($parts[2], 0strlen($parts[2])-1));
        
$st $parts[0][strlen($parts[0])-1];
        
$p4 pruefziffer($p1.$p2.$p3FALSE);
        
$new_perso $p1.$st." ".$p2." ".$p3." ".$p4;
        if(
$new_perso == $perso) {
            
$geb substr($parts[1], 06);
            
$y "19".$geb[0].$geb[1];
            
$m $geb[2].$geb[3];
            
$d $geb[4].$geb[5];
            
$seconds mktime(0,0,0,$m,$d,$y);
            
$r_age date("Y"time() - $seconds)  - 1970;
            if(
$r_age >= $age) {
                return 
TRUE;
            }
        }
    }
    return 
FALSE;
}
if (
$personummer) {
if (
check_age_by_perso($personummer)==1)
echo 
"Du bist 18 oder &auml;lter.";
else
echo 
"Du bist keine 18 oder die eingegebene Nummer: <b>".$personummer."</b> ist falsch.";
} else {
echo 
'<form method="post"><input type="text" name="personummer" size="30"><input type="submit" value="Pr&uuml;fen"></form>';
}
?>


Abspeichern, hochladen und testen. Viel Spass mit dieser kleinen Spilerei.

Info:
Der Personalausweis besteht stäts aus 4 Zeilen.
Somit gibt auch hinter Jeder Zeile ein Leerzeichen ein. Nicht alles zusammen schreiben.
Wo die << , < oder <<<<<< sind an deren Stellen ein Leerzeichen nehmen.


Die Texte nach der Überprüfung könnt ihr nach belieben anpassen:
Beispiel:

Bei Eingabe einer Richtigen Personummer - auf 18 verifiziert:



1

PHP-Quelltext

echo "Du bist 18 oder &auml;lter.";


wird zu:



1

PHP-Quelltext

echo "Du geh&ouml;rst zum alten Eisen.";



Falls die Verifizierung fehlgelaufen ist, liegt es an der Falsch Angabe der Nummer oder man ist unter 18:




1

PHP-Quelltext

echo "Du bist keine 18 oder die eingegebene Nummer: <b>".$personummer."</b> ist falsch.";


Die Variable $personummer gibt in dem Fall die von Euch evt falsch eingetragene oder nicht verifizierte Personalausweiss Nummer wieder, wer sie nicht dort haben will kann sie weglassen, ggf, dann den Text anpassen.


Seitenanfang nach oben

 
 WEBI
  
Zitat
Info:
Der Personalausweis besteht stäts aus 4 Zeilen.
Somit gibt auch hinter Jeder Zeile ein Leerzeichen ein. Nicht alles zusammen schreiben.
Wo die << , < oder <<<<<< sind an deren Stellen ein Leerzeichen nehmen.



Wer lesen kann ist klar im Vorteil.
Und wenn ich die Nummer von dir eingebe kommt:

"Du bist 18 oder älter." na also wo ist das Problem? Du kannst nicht lesen, also erst denken, und dann handeln.
#2 - 30.12.2006 - 16:25 Uhr
 
 
 Gast
  Dieser Blödsinn funktioniert natürlich nicht... Tip: Du kannst bestimmt nicht mal eben nachvollziehen, was etliche Mathematiker in jahrelanger Arbeit erstellt haben  verwirrt. Ich bin 23 Jahre alt, und der Test lässt mich minderjährig aussehen o|.

Und da du zweifelsohne von deiner Perfektheit überzeugt bist:

6512137834D<<8302032<0909217<<<<<<<8

Diese Kennziffer ist die eines Volljährigen, versprochen... dein Möchtegern-Test versagt  cool
#1 - 30.12.2006 - 16:16 Uhr
 

Kommentar verfassen
 Angabe ihres Namens
Fettschrift Kursivschrift Unterstrichen Durchgestrichen Ueberschrift Ueberschrift Ueberschrift Absatz Hochgestellt Liste einfuegen Klapp Text Zitat Email einfuegen Grafik einfuegen. Erlaubt ist nur 550 x 650 Pixel. Link einfuegen  
Linksbuendig Zentriert Rechtsbuendig Blocktext Copyright HTHL Code PHP Code Horizontale Trennlinie Hide vor bestimmtem Status verstecken Erst ab bestimmter Postanzahl sichtbar Erst nach Ablauf des Timers sichtbar Flashfilm Youtube.com Film Textfarbe wählen Smilie Übersicht
 Bitte geben Sie zur Bestätigung den links angezeigten Captcha-Code ein.

Login erforderlich, um schreiben zu können.
 WEBI
Die Zeit rennt. Lang, lang ist es her. Treffer
 Dooki
20 Jahre Pfeifen
 Dooki
flehen
 WEBI
So mehr oder minder. Oh man
 HobbyProgger
Schön,daß es euch noch gibt Lachen
 Sumale.my
*In Erinnerungen schwelg*


hosted by
All-Inkl.com - Alles einfach Internet



HTH-C.com - Webmedien & Community