mace Geschrieben 2. November 2005 Geschrieben 2. November 2005 Hallo, beschäftige mich noch nicht so lange mit PHP und bin da jetzt auf ein Problem gestoßen: einer aufgerufenen Seite wird eine Rückgabeadresse übergeben, sieht in etwa so aus: http://www.aufgerufene-seite.de/?Return_URL=http://www.zieladresse.de/ Diese Return_URL ziehe ich mir auf dieser Seite mit $_SERVER["QUERY_STRING"] heraus und schreibe sie dann in eine Variable. Bis hierhin kein Problem. Auf einer anderen Seite soll beim klicken eines Button diese Return_URL dann wieder zum Einsatz kommen, das geht aber nicht weil die Variable dann nicht mehr bekannt ist, und aus der Adresszeile bekomm ich die Return_URL auch nicht mehr, weil die dann nicht mehr da steht. Frage: wie kann ich diese Variable ständig speichern und dann an entsprechender Stelle wieder benutzen? Hoffe das ist einigermassen verständlich beschrieben, über Hilfe würde ich mich sehr freuen. Gruss, Mathias Zitieren
~Hawkeye~ Geschrieben 2. November 2005 Geschrieben 2. November 2005 Also damit es übersichtlicher wird kannst Du vieleicht einfach Mal folgendes versuchen: <?php echo "<a href=\"index.php?strURL=URL\">Link</a>"; ?> [/PHP] Dann kannst Du mit $_GET['strURL'] auf den Inhalt der Variablen zugreifen. Nun hast Du die auf der nächsten Seite und wenn Du die mit einem Formular noch weiter schicken willst, dann geht das so: [PHP] <?php echo " <form action=\"index2.php?strURL=".$_GET['strURL']."\" method=\"post\"> <input type=\"submit\" name=\"btnSubmit\" value=\"Weiter\" /> </form>"; ?> Und zack kannst Du auch der folgeseite auch nach dem Abschicken des Formulares auf diese Variable zugreifen. Zitieren
Whatever Geschrieben 3. November 2005 Geschrieben 3. November 2005 Benutzt Sessions. Alles wissenswerte unter http://php.net/sessions Zitieren
mace Geschrieben 3. November 2005 Autor Geschrieben 3. November 2005 Hallo, danke für die Antworten, also ich habe es mit $_GET probiert, das sieht dann so aus: $qrySTR = $_SERVER["QUERY_STRING"]; //den Query String einlesen $qrySTRc = strstr($qrySTR,"http://"); //alles ab "http://" rausschneiden echo ($qrySTRc); //zum überprüfen ausgeben $_GET['qrySTRc']; //dann GET benutzen[/PHP] auf der anderen Seite mache ich dann: [PHP]echo "<FORM action=\"index2.php?strURL=".$_GET['qrySTRc']."\" method=\"post\" target=\"_top\">\n"; Funktioniert aber nicht, er fügt die eingelesene Variable nicht mit an. Mit Session arbeiten scheint recht kompliziert zu sein, meinst Du das ist notwendig? Im Prinzip hab ich ja meinen String, ich muss ihn nur noch irgendwie "transportieren" können, mehr will ich ja garnicht... Zitieren
~Hawkeye~ Geschrieben 3. November 2005 Geschrieben 3. November 2005 In der sog. Superglobalen Variablen $_GET wird das gespeichert was mit der Methode Get im Browser übertragen wird. Also alles was an die URL angehängt ist. Allerdings nur, wenn diese URL auch mit der Variablen hinten dran auch so aufgerufen wurde. Diese Variable soll Sicherheitslücken schließen die dadurch entstehen können, wenn register_globals eingeschaltet ist. Wenn register_globals eingerschaltet ist, dann kannst Du immernoch direkt mit dem Variablennamen zugreifen. Also wenn Du nun eine Seite aufrufst und dort auf einen Link klickst indem eine Variable "foo" mitgegeben wird, dann wird das per Get übertragen und auf der nächsten Seite kannst Du entweder bei abgeschalteten register_globals mit $_GET['foo'] oder wenn es aktiviert ist mit $foo auf diese Variable zugreifen. Zitieren
tallman Geschrieben 4. November 2005 Geschrieben 4. November 2005 Mit Session arbeiten scheint recht kompliziert zu sein, meinst Du das ist notwendig? Im Prinzip hab ich ja meinen String, ich muss ihn nur noch irgendwie "transportieren" können, mehr will ich ja garnicht... Session sind leichter als du denkst zu handhaben! Ich habe mich auch erst nicht daran getraut, müsste aber später feststellen dass es doch sehr einfach ist. Um die Session zu starten: session_start(); um die SessionID zu ermitteln oder setzen: session_id(string); und so speicherst du eine Variable in einer Session: $_SESSION['bezeichnung'] = Wert; auf der nächsten Seite kannst du den Wert dann ganz einfach so wieder auslesen (z.B. bei einer ausgabe): echo $_SESSION['bezeichung']; Das ist meiner Ansicht das Wichtigsten von allem. Zumindestens reicht es für dich, wenn du einen Wert speichern willst. Detailliertere Infos erhälst dann halt hier: http://de2.php.net/manual/de/ref.session.php mfg Zitieren
mace Geschrieben 4. November 2005 Autor Geschrieben 4. November 2005 danke für Eure Antworten! Ich habe mir jetzt erstmal so geholfen den Wert in der Datenbank zu speichern und dann an entsprechender Stelle wieder aufzurufen. Vielleicht nicht das sauberste, aber es läuft. Mit dem Thema Sessions werde ich mich dann aber auch mal auseinandersetzen und dann die Lösung evtl. vereinfachen... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.