Variablen aus URL auslesen

SwingerLive

Mitglied
Hallo alle,

Wie kann ich denn bei dem nachfolgendem Link die einzelnen Variablen herauslesen?

SMMO=Status%3D1%20SubscriptionId%3D3034 (Wird als Link übergeben)

Wenn ich das so mache:

$a = urldecode ("SMMO=Status%3D1%20SubscriptionId%3D3034");

Bekomme ich folgendes Ergebnis:

SMMO=Status=1 SubscriptionId=3034

Ich sollte nun die Variable: Status, und SubscriptionId haben.

Könnte mir da jemand weiterhelfen?

Ich hatte schon die Idee mit: $pos1 = strpos($SMMO,"Status=");
die Position abzufragen, und dann die entsprechende Position von dem
Wert abzufragen, scheint mir jedoch viel zu umständlich, bestimmt gibt
es eine viel einfachere Lösung, denn die SubscriptionId brauche ich auch noch,
und da dürfte mit der Zeit auch die Länge von dem Wert größer werden. (SubscriptionId)

Gruß

Andreas
 
So wie das ausschaut, wird das falsch übergeben.
Laut HTTP Spezifikation werden Parameter von der URL mit ? getrennt,
Parameter und Wert mit =
und mehrere Parameter mit &
also
http://foobar.com?param1=wert1&param2=wert2

Wenn die Daten so übergeben werden, findest du sie anschliessend in dem superglobalen Array $_GET als:
$_GET['param1'] und $_GET['param2']
 
Original geschrieben von Lapsus
So wie das ausschaut, wird das falsch übergeben.
Laut HTTP Spezifikation werden Parameter von der URL mit ? getrennt,
Parameter und Wert mit =
und mehrere Parameter mit &
also
http://foobar.com?param1=wert1&param2=wert2

Wenn die Daten so übergeben werden, findest du sie anschliessend in dem superglobalen Array $_GET als:
$_GET['param1'] und $_GET['param2']


Das Formular wird bei mir so aufgerufen:

abo.php?CustomerId=123&MsIsdn=001234567890&Recipient=98765&ServiceId=1&MessageType=S&SMMO=Status%3D1%20SubscriptionId%3D3034&DateReceived=15%2E09%2E2004%2009%3A50%3A09


Nun muss ich in meinem Formular den Ausruf entsprechen auswerten. Ich brauche den Wert von Status und den Wert von SubsciptionId

Gruß

Andreas
 
An Werte aus der URL (GET) kommst du mit $_GET['variablenname'],

also wäre in deinem Falle
PHP:
echo "Status: ".$_GET['Status'];
 
Original geschrieben von Ben Ben
An Werte aus der URL (GET) kommst du mit $_GET['variablenname'],

also wäre in deinem Falle
PHP:
echo "Status: ".$_GET['Status'];


Hallo danke für deine Antwort, klappt aber so leider nicht.
Es geht nur bei den Variablen:

CustomerId=123
MsIsdn=001234567890
Recipient=98765
ServiceId=1
MessageType=S
DateReceived=15%2E09%2E2004%2009%3A50%3A09

Die Variable: SMMO beinhaltet ja beide Variablen, die Status und die SubscriptionId

SMMO=Status%3D1%20SubscriptionId%3D3034

Wenn ich das wie von dir beschrieben anwende, kommt bei Status kein Ergebnis, nur wenn ich das bei "SMMO" mache. Dann habe ich das Ergebnis von Status, und SubscriptionId. Ich müsste nun noch die beide trennen, so dass ich den Wert von Status, und SubscriptionId habe.


Gruß

Andreas
 
Also entwender änderst du den Aufruf entsprechend ab, so dass die beiden Variablen auch ordentlich übergeben werden, oder du musst das anders machen. z.B. mit explode() oder split() oder mit str_pos() und substring().
Geht alles.
Am einfachsten ist aber meiner Meinung nach die Variablen ordentlich zu übergeben. Dann klapps auch mit dem Nachbarn ;)
 
Original geschrieben von Lapsus
Also entwender änderst du den Aufruf entsprechend ab, so dass die beiden Variablen auch ordentlich übergeben werden, oder du musst das anders machen. z.B. mit explode() oder split() oder mit str_pos() und substring().
Geht alles.
Am einfachsten ist aber meiner Meinung nach die Variablen ordentlich zu übergeben. Dann klapps auch mit dem Nachbarn ;)


Danke dir für deine Hilfe.. Das Ändern von dem Aufruf wäre das beste, es ist nur so dass der Aufruf nicht von mir kommt, sondern von einer fremden Webseite, die diese Variablen so übergibt.

Dann werde ich mich mal mit dem explode() oder split() oder mit str_pos() und substring() auseinander setzten.

Gruß

Andreas
 
Zurück