kundennummer aus email genieren und zurückrechnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • kundennummer aus email genieren und zurückrechnen

    Hallo,
    ich hab hier ein kleines Script geschrieben, das mir eine Kundennummer ausgibt. Zurückrechnen ist noch nicht programmiert, ist aber kein Problem.
    Meine Problem: Die Kundennummer wird zu lang.
    Wie kann ich das nun verkürzen, ohne die Rückrechnung und die Einzigartigkeit zunichte zu machen. Hat jemand eine Idee?

    PHP-Code:
    $email "info@comdesi.de";
    $laenge strlen($email);
    $letters = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",".","@");
    $combination = Array();
    for(
    $i=0$i<count($letters); $i++)
    {
     
    $combination[$letters[$i]] = $i;
    }

    $kdn "";
    for(
    $i=0$i<$laenge$i++)
     {
      
    $values $email[$i];
      
    $kdn .= $combination[$values];
     }
     
    echo 
    "<br>";
    echo 
    $kdn;
    echo 
    "<br>"

  • #2
    Mit wie vielen Kunden soll das System dann umgehen können?

    Kommentar


    • #3
      mit 1000 etwa

      Hab jetzt ein Script gefunden: Die Frage ist hier jedoch noch, wie oder ob ich das zurückrechnen kann.

      PHP-Code:


      function getHashNotWorking($argStrHashMethod$argStrString)
      {
      $strHashMethod 'MHASH_' $argStrHashMethod;
      $strHashedString bin2hex(mhash($strHashMethod$argStrString));

      return 
      $strHashedString;
      }

      echo 
      getHashNotWorking('SHA512''info@comdesi.de'); 

      Kommentar


      • #4
        Hallo,

        warum speicherst du die nicht in der Datenbank und nimmst als Kundennummer dann den auto_increment-Wert?

        Alternativ kannst du durch das begrenzte Alphabet und die case-insensitivity jedes Zeichen in einen 6-Bit-Wert quetschen und die entstehende Bitfolge dezimal darstellen, aber dann kommt für eine lange Adresse (caroline.mustermann@mailbox.uni-darmstadt.de) trotzdem ein recht großer Wert raus (z. B. 8589934591).

        Gruß,

        Anja
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Zitat von sanktusm Beitrag anzeigen
          Die Frage ist hier jedoch noch, wie oder ob ich das zurückrechnen kann.
          Eine Hashfunktion ist nicht umkehrbar.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Das klingt nach genau dem was ich suche, wie funktioniert das genau?

            Zitat von AmicaNoctis Beitrag anzeigen
            Hallo,

            warum speicherst du die nicht in der Datenbank und nimmst als Kundennummer dann den auto_increment-Wert?

            Alternativ kannst du durch das begrenzte Alphabet und die case-insensitivity jedes Zeichen in einen 6-Bit-Wert quetschen und die entstehende Bitfolge dezimal darstellen, aber dann kommt für eine lange Adresse (caroline.mustermann@mailbox.uni-darmstadt.de) trotzdem ein recht großer Wert raus (z. B. 8589934591).

            Gruß,

            Anja

            Kommentar


            • #7
              Welches von beiden?
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                in einen 6 bit Wert quetschen

                das würde mein Problem lösen

                Kommentar


                • #9
                  1. Alphabet aufstellen
                  2. Codierungsfunktion schreiben (Algorithmus ähnelt base64_decode)
                  2. Decodierungsfunktion schreiben (Algorithmus ähnelt base64_encode)

                  Oder du überweist mir per Paypal 30,- Euro, dann hast du's in ner halben Stunde im Postfach.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    komme gerne auf Dein Angebot etwas später zurück

                    Kommentar


                    • #11
                      Zitat von AmicaNoctis Beitrag anzeigen
                      aber dann kommt für eine lange Adresse (caroline.mustermann@mailbox.uni-darmstadt.de) trotzdem ein recht großer Wert raus (z. B. 8589934591).
                      Ups, ich hab mich vertan. 8589934591 sind 33 Bit, es kommen aber 33 Byte raus, also sowas in der Länge: 22767755615518320409530122791351201750675520991323495329182222244488086251504648

                      Sorry, hatte nen totalen Denkfehler. Also doch die Datenbank-Variante.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        hab ein Script gefunden, dass ganz gut passt

                        Ich möchte es gerne Umschreiben. Es sollen drei Zahlenfolgen generiert werden also AAC100 oder ABD111. Ich blick leider da nicht ganz durch wie ich das anstellen soll


                        PHP-Code:
                        $num "A00";
                        $max "Z10";
                        $step 10;
                        $count 0;
                        $number_of_customer 20;
                        // Going from A000..A010 until Z010
                        while ($count <= $number_of_customer) {
                        $ord ord($num{0});
                        $digs substr($num1);

                        if (++
                        $digs $step) {
                        $num chr(++$ord)."000";
                        } else {
                        $num sprintf(chr($ord)."%03d"$digs);
                        $count++;
                        }
                        echo 
                        $num."<br>";
                        }
                        echo 
                        $num

                        Kommentar


                        • #13
                          Zitat von sanktusm Beitrag anzeigen
                          Ich blick leider da nicht ganz durch wie ich das anstellen soll
                          und ich blick leider nicht durch, was du anstellen willst.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            mehr Buchstaben

                            Ich habe mir vorgestellt dass ich mehr mit Buchstaben arbeiten will. So etwa 3Buchstaben vor einer dreistelligen Zahl. Ich will also Nummern generieren wie etwa:
                            AAB100
                            ABC200 usw.
                            Schließlich klappt das ja mit dem Script mit einem Buchstaben. Da müsste man doch auch mehrere verwenden können.

                            Kommentar


                            • #15
                              Ok, soweit klar. Und was klappt dabei nicht?
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X