Moin zusammen.
Ich habe folgende PHP-Datei gefunden.
Kann das jemand in ein *.au3 umschreiben
Spoiler anzeigen
PHP
<?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>
Alles anzeigen
Ich sage schon jetzt Dank und schätze mal, das es einige nutzen würden.