PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

Personalausweis Überprüfung

Zurück zur Übersicht

Mit dieser Funktion kann man überprüfen, ob ein Personalausweis gültig ist, und die enthalten Daten extrahieren.

Manche Seiten müssen die Personalausweisnummer von dem Person überprüfen, ob dieser z.B. schon Volljährig ist o.ä.
Hierfür kann man diesen kleinen Script benutzen. Zuerst wird überprüft, ob der Personalausweis noch gültig ist, danach werden die enthaltenen Daten extrahiert. Dazu gehören Geburtsdatum, Ablaufdatum, Staatsangehörigkeit, Kennziffer des Wohnsitzes etc.

 PHP 
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:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
<?php

//Pruefnummer ueberpruefen
function check_number($number=0){
      
$p 7;
      for(
$i=0$i strlen(strval($number)); $i++)
         {
         
$return += substr($number[$i]*$p, -1);
         if(
$p==1)
            
$p=7;
         else if(
$p==3)
            
$p=1;
         else if(
$p==7)
            
$p=3;
      }
   return 
$return;
   }

//Ist der Perso gueltig?
function perso_check($id)
   {
   
$array explode(" "$id);

   
//Erste Checknummer: Zählnummer & Erstwohnsitz
   
if(! (substr(check_number(substr($array[0], 09)), -1)==substr($array[0], 91)))
      return 
false;

   
//Zweite Checknummer: Geburtstag
   
if(! (substr(check_number(substr($array[1], 06)), -1)==substr($array[1], 61)))
      return 
false;

   
//Dritte Checknummer: Gueltig bis
   
if(! (substr(check_number(substr($array[2], 06)), -1)==substr($array[2], 61)))
      return 
false;

   
//Ausweis abgelaufen? Wenn gewuenscht deaktivieren?
   
if(! (time() < mktime(0,0,0substr($array[2], 22) , substr($array[2], 42) , substr($array[2], 02))))
      return 
false;

   
//Vierte Checknummer: Die gesamte Perso-ID
   
if(! (substr(check_number(substr($array[0], 010).substr($array[1], 07).substr($array[2], 07)), -1)==$array[3]))
      return 
false;

   return 
true;
   }

//Informationen aus dem Perso beziehen
function perso_info($id)
   {
   
$array explode(" "$id);

   
//$return: Ein Objekt mit den Daten aus der Ausweisnummer

   
$return->geb->tag$array[1]{4} . $array[1]{5}; //Geburtstag
   
$return->geb->monat $array[1]{2} . $array[1]{3}; //Geburtsmonat
   
$return->geb->jahr "19" $array[1]{0} . $array[1]{1}; //Geburtsjahr

   
$alter date("Y") - $return->geb->jahr;

   
//Hatte er schon Geburtstag?
   
if( (date("n") < $return->geb->monat) OR (date("n") == $return->geb->monat AND date("j") < $return->geb->tag) )
      
$alter--;

   
$return->alter $alter;

   if(
$alter >= 18)
      
$return->volljaehrig true;
   else
      
$return->volljaehrig false;


   
$return->ablauf->tag $array[2]{4} . $array[2]{5}; //Ausweiß Ablauf Tag
   
$return->ablauf->monat $array[2]{2} . $array[2]{3}; //Ausweiß Ablauf Monat
   
$return->ablauf->jahr $array[2]{0} . $array[2]{1}; //Ausweiß Ablauf Jahr

   
$return->herkunft $array[0]{10};

   
//Ein Deutscher?
   
if(strtolower($return->herkunft) == "d")
      
$return->deutscher true;
   else
      
$return->deutscher false;

   
//Erstwohnsitz als Nummer
   
$return->erstwohnsitz $array[0]{0}.$array[0]{1}.$array[0]{2}.$array[0]{3};


   return 
$return;
   }






//Beispiel zur Verwendung
if($_GET['check'])
   {

   
$perso_id $_POST['ida']." ".$_POST['idb']." ".$_POST['idc']." ".$_POST['idd'];
   
//Oder:
   //$perso_id = "1234567891D 2345678 9012345 6"

   
if(perso_check($perso_id))
      {
      echo 
"Personalnummer korrekt!";

      echo 
"<br><br> Daten der Ausweisnummer: <pre>";
      
$data perso_info($perso_id);
      
print_r($data);
      echo 
"</pre>";

      
//Zugriff z.B. so:
        //Alter: $data->alter;
        //Geburtsmonat: $data->geb->monat;
        //Ablauftag: $data->ablauf->tag;
      
}
   else
      {
      echo 
"Personalnummer falsch";
      }
   }
?>


<!-- Kleines Anwendungsbeispiel -->

Personalnummer:<br>
<form action="?check=1" method="post" >
<input type="text" size="11" maxlength="11" name="ida">&lt;&lt;
<input type="text" size="7" maxlength="7" name="idb">&lt;
<input type="text" size="7" maxlength="7" name="idc">&lt;&lt;&lt;&lt;&lt;
<input type="text" size="1" maxlength="1" name="idd"> <br>
<input type="submit" value="überprüfen">
<br><br>


An die Funktion perso_check übergibt man die ID des Personalausweises.
Diese überprüft, ob der Personalausweis gültig ist. Es wird auch überprüft, ob der Personalausweis auch noch gültig ist.

Die Funktion perso_info extrahiert die enthaltenen Daten aus der Personalausweisnummer, z.B. Geburtsdatum, Ablaufdatum, Kennzahl des Wohnortes, Staatsangehörigkeit etc.

Wer es mal testen möchte:
http://www.php-einfach.de/perso_check.php

Kommentare

Zurück zur Übersicht

Autor Andavos

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012