Automatische Kundennummern

Du hast ein PHP-Code Problem und benötigst Hilfe bei der Lösung
Antworten
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Automatische Kundennummern

Beitrag von Kopernikus »

Seit vielen Jahren verwende ich den nachfolgend erwähnten Code um jedem Kunden eine automatische Kundennummer zuzuweisen. Das klappte bisher eigentlich immer tadellos. Seit einiger Zeit fällt mir jedoch auf, dass Kunden welche im dritten Buchstaben einen Umlaut haben, den Code völlig durcheinander bringen.

Beispiel: Herr MAX MUSTERMANN erhält z.B. die Kundennummer: MUS-14141-34181

Wenn nun aber jemand KLÄGER heissen würde, wird die Kundennummer nach dem zweiten Buchstaben abgebrochen. Als Kundennummer sehe ich dann nur noch KL

Was meinen die PHP Cracks hier? Wie könnte ich dieses Problem beheben?

Code: Alles auswählen

// neue Kundennumer automtisch generieren:

if ($isGuest) {
} else {
   // = customer
$kunr = "";
if( $kunr == "" )
{
$knr_pre = substr($lastname,0,3);
$knr_pre = strtoupper($knr_pre);
$knr_jah = date("y");
$knr_jah = $knr_jah * 1000;
$tage = date("z");
$knr_dat = $knr_jah + $tage;
$std = date("H");
$min = date("i");
$sec = date("s");
$std = $std * 3600;
$min = $min * 60;
$mt = $std + $min + $sec;
$kunr = $knr_pre . "-" . $knr_dat . "-" . $mt;
$chkunr = $kunr;
}
$sql_data_array['customers_cid'] = $chkunr;
// Ende RP-Kunden-Nr
}
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Automatische Kundennummern

Beitrag von Xantiva »

Versuche es mal mit mb_substr ...

http://de3.php.net/manual/de/function.mb-substr.php

Das normale substr hat Probleme mit UTF-8 Strings. UTF8 sind "multibyte" Zeichen. Das bedeutet dass viele Zeichen über mehr als ein Byte codiert werden. substr geht strikt nach den bytes und berücksichtigt das nicht. Der Befehl ist zu alt ;)
Mein Shop: http://www.basteln-selbermachen.de
Antworten