Codes generieren und validieren

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

  • Codes generieren und validieren

    Ich zerbreche mir schon den ganzen Tag den Kopf und habe immer noch keine Gescheite Lösung gefunden.

    Und zwar will ich einen generator machen der mir codes im Folgenden generiert:

    845M-40DP-JVRA-7P4W

    Was aber noch nicht das problem ist, das problem liegt darin, dass dann bei der eingabe überprüft werden soll, ob der code auch gültig ist.

    Man könnte die erstellten codes zwar in der datenbank packen, was mir aber nach 10 000 Codes dann zu unübersichtlich wird

    Also irgendwie eine Möglichkeit die Codes nach einem Bestimmten Muster zu generieren und bei eingabe zu validieren =) Wäre sehr dankbar über eine hilfe =)

  • #2
    Dafür ist ne DB doch da? Kann man ja auch sortieren das ganze, Ausgabenlimits setzen etc...
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Re: Codes generieren und validieren

      Original geschrieben von MasterRed
      Ich zerbreche mir schon den ganzen Tag den Kopf und habe immer noch keine Gescheite Lösung gefunden.

      Und zwar will ich einen generator machen der mir codes im Folgenden generiert:

      845M-40DP-JVRA-7P4W

      Was aber noch nicht das problem ist, das problem liegt darin, dass dann bei der eingabe überprüft werden soll, ob der code auch gültig ist.

      Man könnte die erstellten codes zwar in der datenbank packen, was mir aber nach 10 000 Codes dann zu unübersichtlich wird

      Also irgendwie eine Möglichkeit die Codes nach einem Bestimmten Muster zu generieren und bei eingabe zu validieren =) Wäre sehr dankbar über eine hilfe =)
      Reguläre Ausdrücke PCRE
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Original geschrieben von Shurakai
        Dafür ist ne DB doch da? Kann man ja auch sortieren das ganze, Ausgabenlimits setzen etc...
        LoL keine Ahnung ob du immer die Zeit hast jeden code der generiert wird in der Datenbank zu schreiben, ich jedenfalls nicht

        @Payne_of_Death

        Kannst du mir einen Kleinen Anstoss bitte geben ? =) Weil mir fällt wirklich nicht ein, wie ich das mit regulären Ausdrücken regeln soll Oo

        Kommentar


        • #5
          Original geschrieben von MasterRed
          LoL keine Ahnung ob du immer die Zeit hast jeden code der generiert wird in der Datenbank zu schreiben, ich jedenfalls nicht
          LoL keine Ahnung warum du nicht das Skript, das den Code erzeugt, auch in die Datenbank schreiben lässt
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            LoL keine Ahnung warum du nicht das Skript, das den Code erzeugt, auch in die Datenbank schreiben lässt
            Kam mir auch als erstes in den Sinn. Muss man halt nur aufpassen, dass die max_execution_time von dem Script nicht überschritten wird.
            Bei 10000 Einträgen mit Prüfung ob die schon in DB sind kann das sicher etwas dauern.

            Kein Plan, ob man die während der Laufzeit ändern kann, wird aber sicher jemand anderes beantworten können.

            Gruß
            Rootkilla

            Kommentar


            • #7
              Original geschrieben von rootkilla
              Kam mir auch als erstes in den Sinn. Muss man halt nur aufpassen, dass die max_execution_time von dem Script nicht überschritten wird.
              Bei 10000 Einträgen mit Prüfung ob die schon in DB sind kann das sicher etwas dauern.
              du hast nicht wirklich viel ahnung oder?

              beim prüfen schaust du einfdach nach, ob in der datenbank ein datensatz mit dem eingegebenen code steht. da ist es hochgradig egal ob da jetzt 1 eintrag oder 1.000.000.000 einträge stehen
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ich weiß nicht ob ich dich falsch verstanden habe oder du mich.
                Vielleicht fehlt mir auch einfach das KnowHow und die Erfahrung wie das Performant zu relisieren wäre, aber ich gehe jetzt mal mit meinem geringen Wissen davon aus, dass du pro Eintrag eine query zum Eintragen und eine zum Überprüfen brauchst (geht bestimt auch in einer, aber soweit bin ich noch nicht mit SQL).
                Dennoch hat man min 10000 Queries die abgearbeitet werden müssen, die doch sicherlich (insgesammt) einige Zeit beötigen.

                OffTopic:

                Danke für deine aufbauende Art mit Anfängern umzugehen.



                Gruß
                Rootkilla

                Kommentar


                • #9
                  du musst doch nicht jeden eintrag prüfen.

                  du musst vielmehr ein paar grundlagen lernen und dann weißt du, dass du auch z. B.
                  Code:
                  SELECT code
                  FROM tabelle
                  WHERE code = 'abc'
                  machen kannst und nicht alle einträge in der datenbank einzeln lesen und im skript prüfen musst


                  OffTopic:
                  bitte
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Wir reden anscheinend an einander vorbei.

                    erste query

                    Code:
                    SELECT code
                    FROM tabelle
                    WHERE code = 'abc'

                    zweite query

                    Code:
                    INSERT
                    INTO tabelle (code)
                    VALUES ("abc")
                    jetzt durchlauf mal 10000 eine schleife mit denen beiden queries und dem code-generator. das braucht doch sicherlich zeit.
                    wie lange braucht denn etwa so eine query?

                    Kommentar


                    • #11
                      ach du willst codes auf vorrat anlegen?

                      dann erstell dir in einem array so viele coes wie du eintragen möchtest und schreibe die alle mit einem insert in die datenbank, lies dir dazu am besten die beschreibung zu INSERT durch: http://dev.mysql.com/doc/mysql/en/INSERT.html

                      wozu bracusht du beim eintrag von codes auf vorrat ein SELECT?
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Oh. Da hab ich mich wohl verlesen. Sorry.
                        Habe es so verstanden, dass er auf Vorrat anlegen will.

                        Und du hast recht, mit nem Array ist es besser glöst, wenn man auf Vorrat anlegen will.

                        Naja, nichts für ungut.

                        Rootkilla

                        Kommentar


                        • #13
                          LöL ich bin net dumm ich kann php und mysql ;D

                          Aber ihr sagt mia genau das Beispiel, wie ich das vorher gemachT habe =)))

                          Also ich will das in einem Board reinmachen und da haben auch noch 2 andere user zugriff auf die Datenbank (die könnten dann die codes einsehen aber um was zu verändern sind se zu duMM) und ich wiLL nicht, dass sie sich dort einfach dann einen Code raussuchen können und validieren

                          Das bedeutet für mich, dass ich ein System brauch, was bei der eingabe des Codes anhand irgendwelcher Merkmale prüft, ob der Code richtig ist und wenn er richtig ist kommt er in die Datenbank damit der nicht nochmal benutzt werden kann =)

                          Versteht ihr nun was ich meinE ? ;D

                          Kommentar


                          • #14
                            Original geschrieben von MasterRed
                            Also ich will das in einem Board reinmachen und da haben auch noch 2 andere user zugriff auf die Datenbank (die könnten dann die codes einsehen aber um was zu verändern sind se zu duMM)
                            dann nimm ihnen den zugriff, wenn sie nichts editieren können, müssen sie die daten auch nicht sehen

                            alternativvorschlag: erzeuge dir einen x-beliebigen code und lege ihn verschlüsselt in der datenbank ab, bei eingabe verschlüsselst du wieder und vergleichst dann

                            beispiel:
                            - du generierst ksdf-8s6t-r34r-fc4g
                            - du speicherst 945141cec1628b9a0025ad848fd4099fdc04b02b
                            &nbsp;&nbsp;(SHA1)
                            - der benutzer gibt ein: ksdf-8s6t-r34r-fc4g
                            - du verschlüsselst: 945141cec1628b9a0025ad848fd4099fdc04b02b
                            - du vergleichst die verschlüsselte eingabe mit dem eintrag in der datenbank
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Mhm, das ist eine gute MöglichkeiT

                              Aber würde sowas z.B. auch gehn ?

                              Der User gibt den code ein... dann wird z.B. der Code: ksdf-8s6t-r34r-fc4g

                              per preg_replace übersetzt in einer Rechnung und zwar sagen wir k = 12 s =14 d = 0.1 f = 8.9 usw Dann müsste man das zusammen rechnen und wenn dann der erste block z.B. zusammengerechner einen Bestimmten Wert ergibt, ist er valid und das selbe auch bei den anderen 3 Blöcken =)

                              Aber nur frag ich mich, wie ich das genau mache Oo

                              Kommentar

                              Lädt...
                              X