Ankündigung

Einklappen
Keine Ankündigung bisher.

$_GET['X'] in URL überschreiben wenn ...

Einklappen

Neue Werbung 2019

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

  • $_GET['X'] in URL überschreiben wenn ...

    Hi zusammen,

    ist ja fein, dass es php.de wieder gibt

    Mehr oder weniger durch zufall gesehen... und natürlich ne Frage und zwar:

    Ich habe eine URL
    index.php?site=news

    So nun hänge ich nen GET dran und zwar $_GET['neu']
    index.php?site=news&neu=X

    Nun kommt die nächste möglichkeit, ein weiteres $_GET['neu'] anzuhängen ... was ich aber verhindern will ... ich will das wenn das $_GET['neu'] erneut angehangen werden soll, dass alte ersetzt werden soll

    Hoffe mein Problem bzw. meine Überlegung war/ist verständlich

    LG Chris

  • #2
    Ein paar mehr Informationen wären über dein Script (Wie wird der Link generiert? Wie wird er bearbeitet? etc.) würden uns die Arbeit dir zu helfen nicht merklich erschweren.

    Da ich keine problemspezifischen Informationen habe, kann ich dir nur einige Stichworte geben, die ich in meiner Glaskugel gesehen habe:
    - $_SERVER['QUERY_STRING'] //mal ausgeben lassen
    - preg_match() / preg_replace //mal nachlesen

    Gruss
    De Igäl
    Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
    Mark Twain

    Kommentar


    • #3
      Moin,

      Es folgt ein ICH GLAUBE: Ich glaube sobald man eine weitere Variable an die url anhängt und diese schonmal vorhanden ist, sollte diese eigentlich überschrieben werden...*ausprobieren*


      Ambience
      Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

      Kommentar


      • #4
        Der Wert im $_GET-Array wird natürlich überschrieben, weil der Index schon einmal vorhanden ist. Nur in der URL findet man dann zweimal den selben Parameter, was unschön anzuschauen ist. Ich denke das ist es, was er verhindern will.
        Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
        Mark Twain

        Kommentar


        • #5
          Dazu müsste man genauer das Problem kennen. Ist das "Problem" beim erzeugen eines Links, dass index.php?bla=blub&bla=ui z.B. dann als Link im Quelltext / auf der Seite steht, oder dass wenn man manuell 2 gleiche Parameter an die URL hängt es "richtig" aktualisiert werden sollte?

          So könne man die URL einfach nehmen (mit $_SERVER['QUERY_STRING'], und den ersten (oder eben die falschen Werte) mit Reg_ex oder str_replace, explode, etc ersetzen, entfernen oder wie auch immer und dann einfach einen neuen Link erzeugen und diesen mit header() aufrufen. Natürlich alles vor einer Ausgabe oder Verarbeitung. Probleme kanns hier bei Post geben.

          Ansonsten, schwer zu sagen, was das "Problem" genau ist. Zu wenig input für output

          Grüße
          Da Psy
          [I]"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)[/I]

          Kommentar


          • #6
            Um das Problem nochmal etwas genauer zu erläutern:

            Ich habe ein Dropdown Menü mit onchange (weiterleitung einer URL)
            $_SERVER['REQUEST_URI']."?neu=X

            wenn man jetzt das DropDown Menü nochmal nutz, wird die url zu:
            $_SERVER['REQUEST_URI']."neu=X&neu=X

            und genau das will ich verhindern ... !!

            der GET Wert ist variable .. statt X kann auch irgend was anderes an der stelle stehn, je nach Auswahl des jeweiligen Menüpunktes ... !

            LG Chris

            Kommentar


            • #7
              Dann such und ersetz mit preg_replace. Suchst mit Hilfe von regulären Ausdrücken nach dem Pattern "neu=.*" und ersetzt es durch "neu=neuer_wert".

              http://de.php.net/manual/de/function.preg-replace.php
              Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
              Mark Twain

              Kommentar


              • #8
                Hallo,

                preg_replace('/neu\=(.*)/i', 'neu=' . $neuer_wert, $url);

                Bitteschön

                Ambience
                Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

                Kommentar


                • #9
                  hmm mit der Lösung kann ich aber $_SERVER['REQUEST_URI'] nicht verändern ... und somit wirds immer wieder mit angehangen ...

                  Kommentar


                  • #10
                    Du kannst den Wert von $_SERVER['REQUEST_URI'] aber z.B. in eine neue Variable schreiben, die du dann nach Belieben verändern kannst...

                    @Ambience: Was macht deine RegExp, wenn nach dem neu=bla noch ein Parameter kommt? Z.B. neu=bla&neu2=blubb

                    Kommentar


                    • #11
                      hmm stimmt, da hab ich jetzt noch nit dran gedacht Danke !!

                      Kommentar


                      • #12
                        Zitat von Montellese Beitrag anzeigen
                        Du kannst den Wert von $_SERVER['REQUEST_URI'] aber z.B. in eine neue Variable schreiben, die du dann nach Belieben verändern kannst...

                        @Ambience: Was macht deine RegExp, wenn nach dem neu=bla noch ein Parameter kommt? Z.B. neu=bla&neu2=blubb
                        Es sollte ein Ansatz sein, keine Lösung... Bisschen mitdenken darf man erwarten, auch wenn ich davon selber nicht alzuviel halte


                        Ambience
                        Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

                        Kommentar

                        Lädt...
                        X