URL hinter meiner Domain auslesen

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

  • URL hinter meiner Domain auslesen

    Hi,
    wie kann ich die URL hinter meiner Domain auslesen?
    BEispiel URL:
    http://www.irgendwas.de/index.php&co...s&id=irgendwas

    wie bekomme ich einzeln heraus:
    index.php&content=irgendwas&id=irgendwas

    und wie bekomme ich auch einzeln heraus:
    www.irgendwas.de/

    Danke

  • #2
    Ah, bin auf ne gute Seite gestoßen.
    PHP-Code:
    $_SERVER[REQUEST_URI
    -closed

    Kommentar


    • #3
      Oder parse_url(). Und bei deiner Lösung besser
      PHP-Code:
      $_SERVER['REQUEST_URI'
      schreiben
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Also geschafft habe ich es.
        Jedoch fällt mir gerade auf, dass immer der Rest fehlt.
        Beispiel:

        PHP-Code:
        index.php?content=login&mistake=nologin&url=/index.php?content=forum 
        Geht ohne Probleme. Man loggt sich ein, bei korrektem LogIn wird die URL aufgerufen auf die der User wollte.

        Jedoch wenn "url=" länger ist, dann wird sie abgeschnitten.
        Beispiel:
        PHP-Code:
        index.php?content=login&mistake=nologin&url=/index.php?content=mailbox&usermailboxpurpose=writemail&userid=48 
        Loggt man sich nun erfolgreich ein, so kommt man auf die Seite:
        PHP-Code:
        index.php?content=mailbox 
        Es wird abgeschnitten. Aber warum.

        Kommentar


        • #5
          Deine Url ist ungültig!!
          Es ist nur ein Fragezeichen erlaubt.
          Nach einem Fragezeichen darf kein Slash mehr kommen.

          Siehe im PHP Handbuch: urlencode()
          Wir werden alle sterben

          Kommentar


          • #6
            Original geschrieben von combie
            Deine Url ist ungültig!!
            Es ist nur ein Fragezeichen erlaubt.
            Nach einem Fragezeichen darf kein Slash mehr kommen.

            Siehe im PHP Handbuch: urlencode()
            Aber es funktioniert ohne die aufsplittung in hex der ungültigen Zeichen.
            Ich habe zum Test mal die URL in hex umgewandelt und trotzdem kommts aufs selbe raus.
            Ich denke mal das php den Text in "url=" nicht als einen langen Text erkennt, sondern selber als code ?
            Wobei das auch nicht ginge, weil er es sonst zumindest anzeigen würde...

            Kommentar


            • #7
              Ich denke mal das php den Text in "url=" nicht als einen langen Text erkennt, sondern selber als code ?
              Warum sollte das als "Code" erkannt werden? Das ist und bleibt ein String. Nur hinter jedem & fängt der nächste Parameter an.

              folglich hast du folgende Parameter:
              content=login
              mistake=nologin
              url=/index.php?content=mailbox
              usermailboxpurpose=writemail
              userid=48

              Klingt logisch, oder woran sollte PHP deiner Meinung nach unterscheiden, dass url auf einmal &-Zeichen enthalten darf, obwohl die normalerweise der Trennung dienen? Stimmt, geht nicht!

              Und jetzt wendest du urlencode an (wie dir gesagt wurde) und hast auch eine valide URL mit den erwarteten Parametern...

              Kommentar


              • #8
                Bei
                PHP-Code:
                urlencode($_SERVER[REQUEST_URI]) 
                erhalte ich:
                PHP-Code:
                index.php?content=login&mistake=nologin&url=%2Findex.php%3Fcontent%3Dmailbox%26usermailboxpurpose%3Dwritemail%26userid%3D48 
                Soweit alles ok!?

                Ich lasse also beim korrekten Login nun die "url=" in die Location einbinden und müsste dann meinen Link bekommen.
                Doch dem ist nicht so.
                Auch wenn ich es Manuell versuche und einfach zum Test mal hinter meine Domain eingebe:
                PHP-Code:
                %2Findex.php%3Fcontent%3Dmailbox%26usermailboxpurpose%3Dwritemail%26userid%3D48 
                findet er nichts.

                Und das Kann ja eigentlich nicht sein, oder muss ich den hex Code wieder umwandeln? Eigentlich ja nicht...

                Kommentar


                • #9
                  Bei
                  urlencode($_SERVER[REQUEST_URI])
                  erhalte ich:
                  index.php?content=login&mistake=nologin&url=%2Findex.php%3Fcontent%3Dmailbox%26usermailboxpurpose%3D writemail%26userid%3D48

                  Soweit alles ok!?
                  Das ist so unvollständig, dass man nur vermuten kann, was du machst. Daher kann ich dir nicht sagen, ob es richtig oder falsch ist.

                  Ich lasse also beim korrekten Login nun die "url=" in die Location einbinden und müsste dann meinen Link bekommen. Doch dem ist nicht so.
                  Was gibt denn $_GET['url'] zurück? Was stimmt daran nicht? Wo ist dein Problem?

                  Auch wenn ich es Manuell versuche und einfach zum Test mal hinter meine Domain eingebe: %2Findex.php%3Fcontent%3Dmailbox%26usermailboxpurpose%3Dwritemail%26userid%3D48 findet er nichts.
                  Wenn dich das wirklich wundert, dann solltest du dich nochmal mit den Grundlagen des Internets beschäftigen. Die Sache mit dem PHP legen wir dann aber erst noch mal auf Eis.

                  Und das Kann ja eigentlich nicht sein, oder muss ich den hex Code wieder umwandeln? Eigentlich ja nicht...
                  Wenn du tatsächlich den encodierten Code verwendest, musst du ihn NATÜRLICH decodieren?

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    Das ist so unvollständig, dass man nur vermuten kann, was du machst. Daher kann ich dir nicht sagen, ob es richtig oder falsch ist.

                    Was gibt denn $_GET['url'] zurück? Was stimmt daran nicht? Wo ist dein Problem?

                    Wenn dich das wirklich wundert, dann solltest du dich nochmal mit den Grundlagen des Internets beschäftigen. Die Sache mit dem PHP legen wir dann aber erst noch mal auf Eis.

                    Wenn du tatsächlich den encodierten Code verwendest, musst du ihn NATÜRLICH decodieren?
                    Nein, da habe ich mich wohl unverständlich ausgedrückt.
                    Decodieren ist logisch "urldecode()"
                    Jedoch wird irgendwo etwas abgeschnitten.
                    Ich gehe einfach jeden Schritt nochmal einzeln durch und hoffe zu finden wo es abgeschnitten wird.

                    Kommentar


                    • #11
                      Ja, mach du mal.

                      Und falls es nicht hinhaut, bemühst du dich mal und lieferst ne vollständige Problembeschreibung. Ich bin nämlich sicher, dass dein Problem hier im Thread längst gelöst wurde...

                      Kommentar


                      • #12
                        Ja Danke für die Hilfe
                        Ich hab den Fehler gefunden.
                        Also ich habe "url=" encodiert damit er schön als String deklariert und nicht auseinandergeflückt wird.
                        Ging auch super.
                        Doch Sobald die login.php ein zweites mal durchlief um auf korrekte LogInDaten zu überprüfen, musste ich die "url=" daten, die ja encodiert waren, wieder übergeben.
                        Bei überprüfung der Daten also, habe ich per $_GET['url'] die ja nun encodierte url geholt und in die Form zum anmelden eingebettet.
                        Dabei hat sich der encodierte Code einfach decodiert.

                        Das wundert mich nun... Weil ich davon ausging und ihr mir das auch geschr. habt, das man einen encodierten code erst decodieren musst.
                        Logisch.
                        Aber irgendwie hat er sich selbst decodiert.
                        Na dann...

                        Hier der Fehlerpunkt. Ohne das urlencode würde der encodierte Code wieder decodiert ankommen. Warum weiß ich nicht.
                        PHP-Code:
                        <form action="index.php?content=login&loginpurpose=checklogin&url=<?php echo urlencode($_GET['url']); ?>"  method="post">
                        Zuletzt geändert von phpMorpheus2; 25.07.2008, 17:14.

                        Kommentar


                        • #13
                          Das wundert mich nun... Weil ich davon ausging und ihr mir das auch geschr. habt, das man einen encodierten code erst decodieren musst. Logisch. Aber irgendwie hat er sich selbst decodiert. Na dann...
                          Naja, ist so nicht ganz richtig. Ich habe geschrieben:
                          Wenn du tatsächlich den encodierten Code verwendest, musst du ihn NATÜRLICH decodieren

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            Naja, ist so nicht ganz richtig. Ich habe geschrieben:
                            Wenn du tatsächlich den encodierten Code verwendest, musst du ihn NATÜRLICH decodieren
                            Ja, ich muss den encodierten Code decodieren.
                            Aber das er sich selbst decodieren kann wenn ich ihn als Parameter in einer Form mitliefere, dass wusste ich nicht.

                            Ist dein "NATÜRLICH" gemeint wie: "Logischer weise" oder wie: "Auf Natürlicher Weise" ?

                            Kommentar


                            • #15
                              Aber das er sich selbst decodieren kann wenn ich ihn als Parameter in einer Form mitliefere, dass wusste ich nicht.
                              Liegt aber eigentlich in der Natur der Sache... Wenn du einen Umlaut in der URL verwendest, wird der ja auch wieder automatisch umgewandelt, wenn man da überhaupt von einer Umwandlung reden kann.

                              PS: natürlich i.S.v. selbstverständlich, oder auch logischer Weise.

                              Kommentar

                              Lädt...
                              X