80 lines
2.4 KiB
PHP
Executable File
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);
|
|
*/
|
|
?>
|