Hallo,
ich möchte bei denen die Über 18 sind andere bereiche zugänglich machen als denen ohne Personalausweisnummer prüfung bzw. nach prüfung den unter 18.
Könnte man das nicht in die registration einbauen so das, das alter automatisch eingetragen wird, und nicht mehr verändert werden kann.
Und den die jenigen die es nicht machen, eine info im Profil steht, "nicht verifiziert"?
wäre super wenn das jemand hinbekommen würde!
Hab sogar schon ein PHP-Script mitgebracht welche die Prüfziffern auswertet!
müsste eigentlich nur noch irgendwie integriert werden.
Code:<?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], 0, 9)), -1)==substr($array[0], 9, 1))) return false; //Zweite Checknummer: Geburtstag if(! (substr(check_number(substr($array[1], 0, 6)), -1)==substr($array[1], 6, 1))) return false; //Dritte Checknummer: Gueltig bis if(! (substr(check_number(substr($array[2], 0, 6)), -1)==substr($array[2], 6, 1))) return false; //Ausweis abgelaufen? Wenn gewuenscht deaktivieren? if(! (time() < mktime(0,0,0, substr($array[2], 2, 2) , substr($array[2], 4, 2) , substr($array[2], 0, 2)))) return false; //Vierte Checknummer: Die gesamte Perso-ID if(! (substr(check_number(substr($array[0], 0, 10).substr($array[1], 0, 7).substr($array[2], 0, 7)), -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"><< <input type="text" size="7" maxlength="7" name="idb">< <input type="text" size="7" maxlength="7" name="idc"><<<<< <input type="text" size="1" maxlength="1" name="idd"> <br> <input type="submit" value="überprüfen"> <br><br>
Das Script gibt an:
Geboren am: **.**.**** (Alter: **)
Ausweis gültig bis: **.**.**
Herkunft: * (***********)
Kennzahl Wohnsitz: ****
wäre natürlich super, wenn dann noch abgelaufene Perso´s, nicht gespeichert sondern geblockt werden und das der user natürlich mitbekommt!
Schon mal vielen Dank im voraus!
Mfg
Billy


LinkBack URL
About LinkBacks
Zitieren

Lesezeichen