Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Variable aus $Query_String

Empfohlene Antworten

Veröffentlicht

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

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.

Benutzt Sessions.

Alles wissenswerte unter http://php.net/sessions

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...

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.

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

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...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.