dvm/func_id.php
2022-11-28 10:27:30 +01:00

80 lines
2.4 KiB
PHP
Executable File

<?php
#require_once("config.inc.php");
function uuid($nachname, $vorname, $gebdat, $jahr) {
/*
$prefix = date("Ymd", time());
$pool = "qwertzupasdfghkyxcvbnm";
$pool .= "23456789";
srand ((double)microtime()*1000000);
for($index = 0; $index < 5; $index++)
{
$pass_word .= substr($pool,(rand()%(strlen ($pool))), 1);
}
return $prefix."_".$pass_word;
*/
/*
Guten Morgen zusammen,
wäre es nicht besser, wenn die ID einen Bezug zu dem Testteilnehmer hätte?
Ich sehe das jedes Semester bei den Überweisungen der Studierendenbeiträge.
Die Eingabe des vorgegebenen Verwendungszwecks ist oft unvollständig, es gibt massenweise Zahlendreher, fehlende Zeichen und oft stimmt der Einzahler nicht mit dem Studentennamen überein. ( zB. weil die Oma überweist)
Deshalb mein Vorschlag: die ID besteht aus den ersten 4 Buchstaben des Nachnamens plus den ersten zwei Buchstaben des Vornamens plus dem Geburtsdatum ohne Punkte plus dem Versuch:
Bspl. Hans Mustermann , 02.04.1998 => MUSTHA0204199801
Falls der Nachname weniger als 4 Zeichen hätte, füllt man diesen mit dem letzten Buchstaben bis auf 4 Zeichen auf.
Das hätte den Vorteil, dass man die ID für Kontrollmechanismen jederzeit neu generieren könnte und eine Fehlersuche vereinfacht. Die Eindeutigkeit der ID sollte gewährleistet sein.
Viele Grüße
Klaus Oberle
*/
$db = dbconnect();
$nachname = str_replace (array("'", "ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"," "), array("", "ae", "oe", "ue", "ss", "Ae", "Oe", "Ue", "_"), $nachname);
$vorname = str_replace (array("'", "ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"," "), array("", "ae", "oe", "ue", "ss", "Ae", "Oe", "Ue", "_"), $vorname);
$lfd = 1;
$lfd_exit = FALSE;
while (mb_strlen($nachname) <=4){
$postfix = mb_substr ($nachname,-1,1);
$nachname = $nachname.$postfix;
}
$nachname = mb_substr (mb_strtoupper($nachname),0,4);
$vorname = mb_substr (mb_strtoupper($vorname),0,2);
$gebdat = str_replace('.','', $gebdat);
while(!$lfd_exit){
if($lfd < 10){
$lfd_neu = '0'.$lfd;
}else{
$lfd_neu = $lfd;
}
$uuid = $nachname.$vorname.$gebdat.$lfd_neu."-".$jahr."_DVM";
$query_vorh = $db->query("SELECT count(*) Anz FROM dvm_kandidat WHERE id='$uuid'");
$row_vorh = $query_vorh->fetch_array();
if($row_vorh['Anz'] == 0){
$lfd_exit = TRUE;
}else{
$lfd++;
}
}
return $uuid;
}
/*
$nachname = 'Buchholz';
$vorname = 'Maik';
$gebdat = '18.12.1979';
$jahr = "2022";
echo uuid($nachname, $vorname, $gebdat, $jahr);
*/
?>