[Funktion] parse_url problem

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

  • [Funktion] parse_url problem

    hallo,

    ich habe ein "kleines" problem mit der parse_url funktion.

    ich habe auf meiner seite ein loginformular (also nickname und passwort)
    bei betätigen des submit buttons wird man auf eine von mir auswählbare
    seite weitergeleitet. das funktioniert auch alles einwandfrei.

    nun will ich aber das der user auf der seite bleibt wo er war als er sich einloggte (oder zumindest das er nach einloggen einen button bekommt
    mit dem er zurück gehen kann).
    dazu müßte man also die url auslesen auf der er sich im moment des
    einloggens befand.

    kann mir da jemand weiterhelfen.

    MfG
    Andy
    ... wenn deine träume sterben dann wirst du alt !!!


  • #2
    klar, einfach die jeweils aktuelle URL in der Session speichern!

    Kommentar


    • #3
      die url von der ein user kommt wuerd ich nicht auslesen ...

      wenn der user eine firewall an hat, oder aus firmennetzwerken kommt,
      dann kannste du die url, von der er kommt vergessen

      setz lieber nach erfolgreichem einloggen einen header auf die datei von der er kommt ...
      (weil die sollte man ja eigentlich kennen )
      oder geb die in einem formular (ueber nen hidden field)
      mit.

      http://de2.php.net/manual/en/function.parse-url.php

      http://de2.php.net/manual/de/function.parse-url.php

      damit im jeweieligen skript, das den login aufruft den pfad ermitteln sollte eigentlich funzen ....

      sonst beschreib mal dein problem damit etwas genauer ....

      greetz
      iglo
      Zuletzt geändert von kapitaeniglo; 06.07.2003, 19:37.

      Kommentar


      • #4
        die datei von der er kommt ...
        @iglo: das war doch das was er wollte, oder?

        Kommentar


        • #5
          helfen koennten dir die in cgi umgebung vorhanden variablen mit informationen zum server ...

          z.b.
          PATH_INFO
          PATH_TRANSLATED
          SCRIPT_NAME ...

          mit PATH_TRANSLATED konkateniert mit SCRIPT_NAME ..

          solltest den namen des skriptes genauherausbekommen ...

          dies dann per hidden field verschicken und du brauhcst parse_url net ...

          greetz
          iglo


          @tobiaz:
          du kannst dir aber nicht sicher sein, ob du daran kommst, deswegen musst du in den dateien von denen er kommen kann dies eigentlich schon maceh n

          aber deine session variante ist natuerlich recht praktisch ...
          also einfach den pfad (z.b. wie hier oben beschrieben) in ner
          session var speichern .. das in jeder moeglichen datei machen, von der ein user sich anmelden kann und voila ...

          kann er immer wieder zurueck kommen

          greetz
          iglo

          Kommentar


          • #6
            also ich find sessions wirklich ideal.

            (diese variante setzt dann vorraus, dass der user von der eigenen seite kommt.)

            in den $_SERVER-Vars gibts ja genug, um die aktuelle Adresse herauszufinden.

            Das mit Hidden ist zwar ganz net, aber dann brauchst du das Loginformular auf jeder Seite. SOnst würdest du schließlich immer wieder auf die Login-Seite kommen, was absolut keinen Sinn macht.

            Solche sachen als Hidden zu versenden, finde ich meist sehr unschön, schließlich ist das leicht zu manipulieren.

            Kommentar


            • #7
              hallo,

              erstmal danke für die vielen antworten. das prob mit parse_url habe ich jetzt folgendermassen gelöst.

              im login formular (das übrigens immer zu sehen ist, da es in den kopf der seite per <? LoginMenue ?> eingebunden wird) habe ich jetzt
              $_SERVER["HTTP_REFERER"]; gesetzt und mittels diesem kann ich mir ja die aktuelle seite ausgeben lassen :-) !!!

              Jetzt habe ich aber das nächste Prob.

              ich kann jetzt zwar mittels diesem script:
              {
              case "test" :
              {
              if ($_SERVER["HTTP_REFERER"] == ('http://127.0.0.1/home/mysticweb/home.php'))
              $last_side = "ins Home";
              if ($_SERVER["HTTP_REFERER"] == ('http://127.0.0.1/home/mysticweb/news.php'))
              $last_side = "zu den News";
              if ($_SERVER["HTTP_REFERER"] == ('http://127.0.0.1/home/mysticweb/forum.php'))
              $last_side = "ins Forum";
              if ($_SERVER["HTTP_REFERER"] == ('http://127.0.0.1/home/mysticweb/guest.php'))
              $last_side = "zum G&auml;stebuch";

              ?>
              <table cellpadding=0 cellspacing=0 width="100%" height="100%">
              <tr>
              <td height=40 valign="bottom" align="center">
              <font family="Verdana, Arial, Helvetica, sans-serif" size="11px" color="#330066">
              <a href="<? echo $_SERVER["HTTP_REFERER"]; ?>">Hier gehts zur&uuml;ck <? echo $last_side; ?></a></font>
              </td>
              </tr>
              </table>

              <?

              break;
              }
              zurück auf die letzte seite verlinken aber da der mensch ja nie genug bekommt würde ich jetzt gern in der obigen tabelle die mir nun bekannte
              url AUTOMATISCH aufrufen lassen.

              meta refresh kann ich aber nicht nehmen da ich mich ja schon mitten im body befinde. und iframe ist auch nicht so gut ... das kann ja nicht jeder browser.

              MfG
              Andy
              ... wenn deine träume sterben dann wirst du alt !!!

              Kommentar


              • #8
                hi ... also fuer das refresh hab ich jetzt sofort auch nix, aber :
                HTTP_REFERER:
                den bekommste net, wenn dein user ne firewall hat die den blockt (z.b. norten macht das bei standarteinstellungen)

                @refresh:
                versuchen die pruefung ob die daten korrekt sind an den beginn zu legen bevor ne ausgabe erscheint ...

                sollte eigentlich moeglich sein ...

                greetz
                iglo

                Kommentar


                • #9
                  kläre mich mal einer auf

                  jemand tippt www.domain.de/geheim/geheim.php ein

                  da er nicht eingeloggt ist, kommt er automatisch zum loginformular und wenn er sich da korrekt authentifiziert,soll er wieder zu www.domain.de/geheim/geheim.php?

                  dann mach in deine geheim.php sowas:
                  PHP-Code:
                  <?php
                  session_start
                  ();
                  if (!
                  logged_in())
                  {
                     
                  $_SESSION['access_desired']=$_SERVER['PHP_SELF'];
                     
                  header('login.php');
                  }
                  und in der login.php
                  PHP-Code:
                  <?php
                  session_start
                  ();
                  //der ganze login-kram
                  if (logged_in() and isset($_SESSION['access_desired']) and file_exists($_SESSION['access_desired']))
                    
                  header($_SESSION['access_desired']);
                  sollte doch eigentlich gehen oder nich?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    also ob das geht weiss ich nicht :-( habe doch nicht soooo viel ahnung von php.

                    also nochmal ne kurze erklärung.

                    ich habe ne hauptseite (ein tabellenconstruct) kein frameset. im oberen teil wird das LoginMenue(); eingebunden und ein paar rows und tabellen weiter unten läuft die eigentliche inhaltsseite. logischerweise unabhängig von der oberen tabelle.

                    wenn jetzt also oben sich jemand einloggt dann werden die logindaten ja per "post" an die sogenannte user.php gesendet. in aus dieser ist auch der obige scriptauszug. ich kann jetzt durch eine kleine abfrage und zuweisung in das case="test" springen. so weit so gut.

                    aber in diesem case soll jetzt die datei aufgerufen werden auf der der user war als er sich einloggte. und das auch noch automatisch (also eben nicht per button so wie es jetzt ist).
                    ... wenn deine träume sterben dann wirst du alt !!!

                    Kommentar


                    • #11
                      Original geschrieben von TheCure13
                      also ob das geht weiss ich nicht
                      ausprobieren?
                      kannst ja testweise mal statt dem header befehl echo $_SESSION['access_desired']; machen und dir anschauen was rauskommt
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar

                      Lädt...
                      X