[REGEX] preg match problem

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

  • [REGEX] preg match problem

    Hallo,
    ich versuche verzweifelt mit preg_match eine eingabe abzusichern.
    Der eingegeben string wird als dateiname verwendet, meine prüf maske sollte eigentlich prüfen und sicher gehen, dass erstes zeichen ein buchstabe ist und der rest halt nur a-z und 0-9 und _ enthält, aber es klappt leider nicht.
    meine maske sieht so aus:

    /^[a-z][a-z0-9_]+/i

    es geht mir hier explizit um preg nicht um ereg

    aber hat einer ein tipp?
    SQL Injection kitteh is...

  • #2
    unser manual?

    EDIT:
    meite Tunt, aber hast mich ja verstanden
    Zuletzt geändert von TobiaZ; 06.07.2003, 18:32.

    Kommentar


    • #3
      anhand eures manuals hab ich das da raus, dass is ja mein problem
      SQL Injection kitteh is...

      Kommentar


      • #4
        da fehlen ja die Mengenangaben.

        ich muss auch immer wieder da rein sehen. aber ich denke

        Code:
        \(^[a-zA-Z]+)[a-zA-Z0-9]*\.[a-zA-Z0-9]{2,4}$\
        bringt dich schonmal weiter-

        Kommentar


        • #5
          Code:
          \(^[a-zA-Z]+)[a-zA-Z0-9]*\.[a-zA-Z0-9]{2,4}$\
          da fehlt mir jetzt der sinn,
          (^[a-zA-Z]+) wofür das plus? wenn nur der erste buchstabe ein buchstabe sein soll, alle anderen zeichen können a-z 0-9 und _ sein, mengen angabe ist hier irrelevant, mir gehts nur um die zeichen, die vorkommen und welche nicht.
          Und mein Pattern funktioniert ansich, aber irgendwie gibt er true bei dem string awe$§% obwohl da diese sonderzeichen garnicht definiert sind.

          Das bringt mich nicht weiter ,leider
          aber Danke!
          SQL Injection kitteh is...

          Kommentar


          • #6
            also:

            /^[a-z][a-z0-9_]+/i

            das halte ich für doppelt gemoppelt. oder bin ich da jetzt falsch?!?

            warum es bei dem str. probleme gibt?

            ganz einfach. dein pattern checkt, ob am anfang buchstaben sind, mehr nicht. daher werden die sonderzeichen am ende auch dankend angenommen.

            Kommentar


            • #7
              erstes zeichen : a-z
              dann sind sie wohl nicht irrelevant

              Kommentar


              • #8
                ja, es ist wichtig, dass das erste zeichen keine zahl ist und ich glaub ich habs, ich muss nur das $ am ende dran hängen, dann geht das.

                Danke an alle, brainstorming hilft!!!
                SQL Injection kitteh is...

                Kommentar


                • #9
                  Das ist das was ich gesagt habe.

                  Abe nun probier mal nen echten Dateinamen mit nem Punkt+Endung!

                  Kommentar


                  • #10
                    Original geschrieben von Seikilos
                    ja, es ist wichtig, dass das erste zeichen keine zahl ist und ich glaub ich habs, ich muss nur das $ am ende dran hängen, dann geht das.
                    Dein im ersten post geschildertes problem, resultiert nicht daraus!
                    EDIT:
                    und eigentlich war deine erste regex auch richtig, für das geschilderte problem, nur noch nicht für einen richtigen dateinamen
                    Zuletzt geändert von graf; 06.07.2003, 19:08.

                    Kommentar


                    • #11
                      dass erstes zeichen ein buchstabe ist und der rest halt nur a-z und 0-9 und _ enthält, aber es klappt leider nicht.
                      Ich finde doch, dass es hierraus geht. und es ging ja nicht, weil ich das $ vergessen habe.
                      Dateinamen können doch mehrere punkte und endungen haben, da sehe ich kein problem aber werde es wohl auch absichern, danke nochmals
                      SQL Injection kitteh is...

                      Kommentar


                      • #12
                        und dafür gibt deine erste regex auch 1 zurück!

                        wenn du aber "abbb.sql" prüfst, dann natürlich nicht

                        Kommentar


                        • #13
                          dein pattern wird aber keinen einzigen punkt durchlassen.

                          Kommentar


                          • #14
                            ja, dessen bin ich mir bewusst. Aber danach hab ich ja auch garnicht gefragt, ich sagte, es prüft nach datei name, und danach kam dass was ich genau vor hatte
                            SQL Injection kitteh is...

                            Kommentar


                            • #15
                              naja, wie man dateiname auffasst, bleibt ja jedem selbst überlassen.

                              aber wenns dir nur auf die bezeichnung ankam, wäre string aus a-Z0-9_ mit 1. Buchst. a-Z wohl passender gewesen

                              Kommentar

                              Lädt...
                              X