Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Gutscheincode erzeugen

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.04.2002
    Beiträge
    11

    Gutscheincode erzeugen

    Hallo Experten,

    ich muss mit PHP einen Gutscheincode erzeugen. Der Code muss eindeutig sein. Ich brauche 100.000 verschiedene Codes und weiß nicht wie man das bewerkstelligen könnte. Hat jemand eine Idee?

    Herzlichen Dank.

    Gruß

    Roland

  2. #2
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    04.10.2001
    Ort
    potsdam
    Beiträge
    881
    laufend nummer?
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.04.2002
    Beiträge
    112
    Wenn es nen Wirrwarr sein soll, dann generier doch mit Random 100.000 Codes und vergleiche alle, ob keine doppelt sind *ggg*
    Verteilt die Macht, dass sie keinen mächtig macht!

  4. #4
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    04.10.2001
    Ort
    potsdam
    Beiträge
    881
    jetzt mal im Ernst:

    Welche Anforderungen bestehen denn an diesen Code, außer der Eindeutigkeit?

    Wenn das nicht klar ist, dann biete deinem Auftrggeber eine 6-stellige laufende Nummer an.... Dann wird er dir die wirklichen Anforderungen verraten.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  5. #5
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215

    zufallszahl

    Hi,

    du könntest ja natürlich auch mehrere zufallsgeneratoren machen, ein generator für eine zahl im Code...

    Maik

  6. #6
    Registrierter Benutzer
    Registriert seit
    09.04.2002
    Beiträge
    11
    Erstmal danke für Eure Antworten.

    Die Anforderungen an den Code sind recht einfach:
    1. Keine fortlaufende Nummer
    2. Eine Kombination aus Zahlen und Buchstaben
    3. Maximal 9 Stellen
    4. Das Verhältnis der Zahlen und Buchstaben ist egal. Es können fünf Zahlen und vier Buchstaben oder 3/6 usw. auftreten

    ungefähr so:
    3dr-6zt-w3e-45z

    Viele Grüße und herzlichen Dank

    Boxa

  7. #7
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von boxa
    Die Anforderungen an den Code sind recht einfach:
    1. Keine fortlaufende Nummer
    2. Eine Kombination aus Zahlen und Buchstaben
    3. Maximal 9 Stellen
    4. Das Verhältnis der Zahlen und Buchstaben ist egal. Es können fünf Zahlen und vier Buchstaben oder 3/6 usw. auftreten
    1. Du generierst dir erst mal ausgehend von einem x-beliebigen Code, zählst irgendwas hoch, was sich auch über Zeichen erstreckt (8,9,a,b,c...) bekommst "Unikate", der Fantasie sind keine Grenzen gesetzt.
    Wenn du um 2,3 oder sonstwas hochzählst, sind es auch keine fortlaufenden Nummern.
    2. Du wendest den "[Uni]Ka(r)ten-Misch-Algorithmus" an:
    der Reihe nach 1 Karte mit einer anderen beliebigen tauschen

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Wenn der Server unter Linux läuft, einfach für jeden Code 7 bytes aus /dev/urandom lesen, jagst diese durch Base 64, nimmst nur die ersten 9 Zeichen des ergebnisses, ersetzt + und / durch einen beliebigen Buchstaben, und wandelst evtl. noch in Großbuchstaben um, wenn der Code case-insensitve sein soll.

    Wenn er nicht unter Linux läuft, kannst du natürlich auch PHPs random()-Funktionen benutzen.

    Und um den Code idiotensicher zu machen, kannst du noch alle "L" durch 1, alle "O" durch 0 ersetzen und bei der Eingaberoutine evtl. auftretende Ls und Os genauso umwandeln.
    Geändert von Joghurt (29-04-2005 um 15:51 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    wenn´s auch Perl sein darf?


    PHP-Code:
    #!/usr/bin/perl

    my @chars= ('a'..'z',0..9);  #Zeichen die im Code vorkommen dürfen
    my %Codes;

    #100.000 garantiert einmalige Codes erzeugen
    while( keys(%Codes) <= 100000)
    {
      
    my $Code;
      
    $Code .= $chars[int(rand(@chars))]for(0..8);
      
    $Codes{$Code}=1;
      print 
    "Bisher " keys(%Codes) . " erzeugt...\r";

    }
    print 
    "100.000 Gutschein Codes erzeugt...\n";

    #alle Codes ausgeben:
    foreach my $Code (keys(%Codes))
    {
      print 
    "$Code\n";


  10. #10
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Ich hab's! Etwas, das auch alle 4 Bedingungen erfüllt:
    a99999999
    a99999998
    a99999997
    a99999996
    etc.

  11. #11
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    05.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Hmm, warum so kompliziert?

    einfach eine Zaqhl hochzhählen dann mit einer nur dir bekannten Zahl xor vergleichen. Das Ergebnis dann vielleicht noch im Hexcode ausgeben. Wenn der Gutschein zurück kommt, Zahl erfassen und wieder mit xor und der dir bekannten Zahl vergleichen. Das Ergebnis ist dann deine Ausgangszahl.

    Man kann natürlich noch weitere Späße einbauen, weiß aber nicht wie weit du die Sicherheit treiben willst. Könntest ja auch das Ergebnis von MD5 als Gutscheincode ausdrucken, aber dann wirst du bestimmt von deinen Mitarbeitern, die an der Kasse den Code fehlerfrei abtippen müssen, erschlagen und das wollen wir dir nicht antun

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  12. #12
    Registrierter Benutzer
    Registriert seit
    28.10.2011
    Beiträge
    1

    Gutschein Code Automatich

    Zitat Zitat von michael.sprick Beitrag anzeigen
    wenn´s auch Perl sein darf?


    PHP-Code:
    #!/usr/bin/perl

    my @chars= ('a'..'z',0..9);  #Zeichen die im Code vorkommen dürfen
    my %Codes;

    #100.000 garantiert einmalige Codes erzeugen
    while( keys(%Codes) <= 100000)
    {
      
    my $Code;
      
    $Code .= $chars[int(rand(@chars))]for(0..8);
      
    $Codes{$Code}=1;
      print 
    "Bisher " keys(%Codes) . " erzeugt...\r";

    }
    print 
    "100.000 Gutschein Codes erzeugt...\n";

    #alle Codes ausgeben:
    foreach my $Code (keys(%Codes))
    {
      print 
    "$Code\n";

    der code ist gut nur ich Suche/ hätte gerne ein der meine vorgegebenen code anzeigt und nach einmal nehmen sich löscht. danacht sollte man kein mehr auswählen können bis brower geschlossen und dan wieder neu aufgemacht wird.

  13. #13
    Registrierter Benutzer
    Registriert seit
    08.05.2010
    Beiträge
    93
    Hilft dir die Klasse Text_Passwort weiter?

    http://pear.php.net/package/Text_Password

    (Könnte aber auch schon zu übertrieben sein)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •