kundennummer aus email genieren und zurückrechnen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


    • #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'); 

      Comment


      • #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]

        Comment


        • #5
          Originally posted by sanktusm View Post
          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]

          Comment


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

            Originally posted by AmicaNoctis View Post
            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

            Comment


            • #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]

              Comment


              • #8
                in einen 6 bit Wert quetschen

                das würde mein Problem lösen

                Comment


                • #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]

                  Comment


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

                    Comment


                    • #11
                      Originally posted by AmicaNoctis View Post
                      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]

                      Comment


                      • #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

                        Comment


                        • #13
                          Originally posted by sanktusm View Post
                          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]

                          Comment


                          • #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.

                            Comment


                            • #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]

                              Comment

                              Working...
                              X