Pattern-Hilfe: komplizierter pattern ich kriegs nicht gebacken

hey.

http://localhost/Search?s=qwd

ich möchte "qwd" extrahiert haben. Kann aber niciht $_GET nutzen. Warum ist jetzt egal.
Also nutze ich $_SERVER['REQUEST_URI'].
Wie muss der Pattern aussehen damit ich "qwd" raushabe?

Die URi könnte ja auch mal gefakt werdenvon irgendwelchen Hackern.

Z.B.
http://localhost/Search?l=234&s=qwd&x=lala
oder
http://localhost/Search?s=qwd&s=pla
oder
http://localhost/Search?s=qwd
oder
http://localhost/Search?s=q&wd

hrmpf. eigentlich würde ichja sagen nehme string von "s=" bis "" oder "&"
ach ich blick nich durch wie ich da machen soll wenn die ausnahmen oben auftreten.

gruß, pattern

  1. $_REQUEST['qwd'] ?

    1. $_REQUEST['qwd'] ?

      höä?
      das ist doch kein pattern und der parameter hei0t s der wert ist im beispiel qwd kann aber doch auch di32dj32üoidjü3d oder JOJOJO sein...

      1. übersehen, dementsprechend:
        $_REQUEST['s']

        --
        for your security, this text has been encrypted by ROT13 twice.
        1. übersehen, dementsprechend:
          $_REQUEST['s']

          Sorry ich hatte mich wohl falsch ausgedrückt.
          Ich frage ausdrücklich nach einem _Pattern_.
          $_GET und $_REQUEST kann ich nicht verwenden.

          1. was genau verstehst du unter _PATTERN_?

          2. du hast geschrieben das $_GET nicht geht, von $_REQUEST hast du nix gesagt. ;)

            --
            for your security, this text has been encrypted by ROT13 twice.
  2. ehrlich gesagt verstehe ich nicht, was dein Problem ist.

    Wie muss der Pattern aussehen damit ich "qwd" raushabe?

    Was genau meinst du mit *raushabe*?

    1. RegEX!!!!

      Gegebene Strings:
      http://localhost.lol/?s=qwd          (ich möchte hier haben: qwd)
      http://localhost.lol/?s=qw&d         (ich möchte hier haben: qw&d)
      http://localhost.lol/?s=qwd&x=sdw    (ich möchte hier haben: qwd)
      http://localhost.lol/?s=qwd=x        (ich möchte hier haben: qwd)

      Ich suche einen reulären Ausdruck. Ein Pattern. das es mir ermöglicht die gesuchten Teile aus den gegeben Strings zu extrahieren.

      Danke.

  3. Hallo Pattern,

    Die URi könnte ja auch mal gefakt werdenvon irgendwelchen Hackern.

    Du solltest unabhängig davon, ob du die Werte per $_GET[...] oder mit irgendeinem anderen Verfahren ausliest immer eine Validierung der Eingaben durchführen.

    http://localhost/Search?l=234&s=qwd&x=lala
    http://localhost/Search?s=qwd&s=pla
    http://localhost/Search?s=qwd
    http://localhost/Search?s=q&wd

    (?|&)s=([^&])*
    dürfte ?s=qwd erfassen.

    Damit, nur der interessante Teil passt:
    (?:?|&)s=((?:[^&])*)

    $check = [link:http://de.php.net/manual/de/function.preg-match.php@title=preg_match]('/(?:\?|&)s=((?:[^&])*)/',$str, $ar);
    Der Code müsste dafür sorgen, dass der Wert in $ar[1] enthalten ist.

    Gruß,
    Dodwin

    --
    Dodwin
    1. Danke! =)

      Hast mir sehr geholfen.

      Wie meinst du überprüfen also es ist für ne Suchmaschine..

      1. Hallo Pattern,

        Wie meinst du überprüfen also es ist für ne Suchmaschine..

        Na du hast doch angefangen von Hackern zu reden ;)

        Was ich meinte ist einfach, dass du die Werte vernünftig weiterverarbeitest.
        Bei Datenbanken heißt das z.B. die Userangaben bevor sie in den SQL-Befehl eingefügt werden zu escapen (und vllt mal mit Magic Quotes auseinandersetzen).

        Gruß,
        Dodwin

        --
        Dodwin
    2. Hallo,

      (?|&)s=([^&])*
      dürfte ?s=qwd erfassen.

      Damit, nur der interessante Teil passt:
      (?:?|&)s=((?:[^&])*)

      na ja, er möchte ja auch

      "http://localhost.lol/?s=qw&d         (ich möchte hier haben: qw&d)"

      s=qw&d erfasst haben...

      1. Hi klose!

        na ja, er möchte ja auch

        "http://localhost.lol/?s=qw&d         (ich möchte hier haben: qw&d)"

        s=qw&d erfasst haben...

        Nein, wenn dann möchte er "s=qw%26d" erfassen.

        Du kannst die beiden Varianten ja mal bei Google vergleichen. =)

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. hi hopsel,

          wahrscheinlich will er das, aber sagte es nicht. Der Unterschied ist mir durchaus bewusst.

          gruss
          klose