Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » Personalausweis Check


Personalausweis Check
empty
Gast

User Pic

# 15.06.2010 - 16:30:59
    zitieren



Hallo Mairu,

ich würde gerne einen personalausweis Check machen bzw das Alter bestätigen.

hier habe ich folgenden 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"Zwinker - $return->geb->jahr;

//Hatte er schon Geburtstag?
if( (date("n"Zwinker < $return->geb->monat) OR (date("n"Zwinker == $return->geb->monat AND date("j"Zwinker < $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"Zwinker
$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>


Das habe ich nun eingebaut auf unserer HP dennoch wenn ich meine nummer dort eingebe und abschicke werde ich auch die index.php datei weitergeleitet anstatt zu meinen angaben wäre nett wenn du 7ihr mir helfen könntet.
empty
Gast

User Pic

# 15.06.2010 - 16:32:29
    zitieren



Edit: Webspell
empty
Gast

User Pic

# 17.06.2010 - 22:44:54
    zitieren



Mag mir keiner helfen?! =(
Mairu
Administrator

User Pic

Posts: 1908
# 17.06.2010 - 23:15:36
    zitieren



Man wird dahin "weitergeleitet" was man bei action vom Formular angibt, bei dir ist das ?check=1 mit anderen Wirten wird index.php?check=1 aufgerufen, ich hab ja keine Ahnung, wo du es benutzt.

Und als Hinweise, mit Google findet man ganz leicht Generatoren für Ausweisnummern, weshalb es unnötiger Aufwand ist so einen Test einzubauen, da man ihn sehr leicht aushebeln kann.
empty
Gast

User Pic

# 24.06.2010 - 13:10:15
    zitieren



Es geht darrum,

das sagen wir mal etweas ab dem Alter 18 erst aufgerufen werden kann, und wir uns die Perso nummern von dem jeweiligen zukommen lassen und sie überprüfen ob er auch das Alter hat. Wir binden das auf der Page ein und nur Administratoren können es einsehen.
Mairu
Administrator

User Pic

Posts: 1908
# 26.06.2010 - 12:12:07
    zitieren



Ich hab z.Z. leider nicht viel Zeit, von der Sache her, wenn ihr das überprüft habt, könntet ihr ja entweder ein Grundrecht darauf verwenden oder ein Team, indem ihr die kontrollierten Volljährigen einordnet, am besten sollte man das selbst machen.