Personal Homepage, Tutorials & Blog

PHP: GET-Parameter verschlüsseln und auslesen

PHP: GET-Parameter verschlüsseln und auslesen

9. Mai '10

Für dieses Tutorial wird der Artikel PHP: Encrypt/Decrypt Funktion mit Base64 und Schlüssel vorausgesetzt. Die encrypt/decrypt-Funktionen sind ebenfalls diesem Artikel entnommen.

1. Schritt: Verschlüsseln

Beispiel-URL:

http://www.testseite.de/index.php?name=hans&nachname=meier&id=15&email=test@testmail.de

Mit der Funktion encrypt() wird der Übergabeteil der URL verschlüsselt. Der Link sieht dann etwa so aus:

http://www.testseite.de/index.php?2dfWzt6w55Pi3czsdfV3Nal2eDUltePXm8jh19hqqpun

2.Schritt: Entschlüsseln

Die verschlüsselte URL muss nun wieder lesbar gemacht werden. Zunächst wird der Anhang der URL, der Querystring (ab dem Fragezeichen) separiert:

$querystring = $_SERVER['QUERY_STRING'];

Im nächsten Schritt wird der Querystring entschlüsselt:

$querystring = decrypt($querystring, "key");

3. Schritt: GET-Parameter auslesen

Nun müssen die angehängten Parameter einzeln ausgelesen werden. Dies geschieht mit der Funktion parse_str():

parse_str($querystring);

Nun sind die angehängten Parameter in Variablen gespeichert. Für das obige Beispiel existieren nun folgende Variablen:

$name = "hans";
$nachname = "meier";
$id = "15";
$email = "test@testmail.de";

Diese Variablen (die natürlich nirgendwo im Klartext sichtbar definiert sind) können nun verwendet werden, z.B. um ein Formular zu füllen.

 

Wenn Ihnen dieser Artikel gefallen hat, oder Sie Anregungen/Kritik haben, würde ich mich freuen, wenn Sie einen Kommentar schreiben oder das RSS Feed abonnieren, um immer automatisch über die neuesten Artikel auf dieser Seite informiert zu werden. Sie dürfen diesen Artikel oder die gesamte Seite auch gerne verlinken.

5 Kommentare

  1. TheBigOne /

    Bei Problemen mit Sonderzeichen in der URL muss einfach vorher rawurlencode() und anschliessend rawurldecode() verwendet werden 😉

  2. Die Skriptfunktionen weisen einen Mangel auf. Manchmal wird ein Gleichheitszeichen = im Hash mit verwendet.

    Bei der Übergabe als GET Parameter wird der Parameter dann falsch ausgelesen, wenn es noch mehr Parameter gibt.

  3. Patrick /

    Ich habe die Funktion für einen etwas längeren String verwendet und dabei ist mir aufgefallen, dass ab und an Sonderzeichen im Crypt auftauchen, wie z.B. das Plus (+). Dies wird jedoch beim GET-Auslesen der URL ausgeschnitten und durch nen Leerzeichen ersetzt und kann somit nicht mehr richtig dekodiert werden. Nun weiß ich allerdings nciht, ob das Problem auch noch bei anderen Sonderzeichen aufkommt, die ich so noch nicht wahrgenommen habe.

    • So geht es mir auch…eine große Problematik, da ich zuverlässige Ergebnisse liefern muss. Hast du eine Möglichkeit gefunden = “ ‚ + ? etc. zu exkludieren?

  4. Kannst Du dieses auch als Beispiel in Objective C realisieren?

Einen Kommentar schreiben