Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

mod-rewrite und PHP_SELF

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Khexacyanoferrat
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 17.12.2006, 22:32

Beitrag von Khexacyanoferrat » 17.12.2006, 22:44

Hallo,

ich hab in der Suche und über Google nichts gefunden, deshalb erstelle ich hier mal einen neuen Thread :wink:

Ich schreibe momentan für meine Homepage eine Benutzerverwaltung. Dabei soll beim Ausloggen bzw. beim Einloggen die aktuelle URL gespeichert werden, so dass es möglich ist, den Benutzer wieder darauf zurückzuleiten.

Dies geschieht in diesem Format: logout.php?URL=/index.php und funktioniert auch einwandfrei (über PHP_SELF und die Übergabeparameter).

Mein Problem ist jetzt nur, dass bei einer mit mod-rewrite umgeschriebenen URL statt der aufgerufenen URL (z.B. pnwrite-1.php) die tatsächliche URL (pnwrite.php?ID=1) ermittelt wird.

Wie könnte ich denn erreichen, dass statt logout.php/URL=pnwrite.php?ID=1 die umgeschriebene URL logout.php/URL=pnwrite-1.php ermittelt wird?

Hier den Code den ich aktuell verwende:

Code: Alles auswählen

$URL = $_SERVER['PHP_SELF'];
if ($_SERVER['QUERY_STRING'] != "") 
  $URL .= "?" . $_SERVER['QUERY_STRING'];
Grüße
Kaliumhexacyanoferrat

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 17.12.2006, 23:10

Probier mal:

Code: Alles auswählen

$URL = $_SERVER['REQUEST_URI'];
if ($_SERVER['QUERY_STRING'] != "")
  $URL .= "?" . $_SERVER['QUERY_STRING']; 

Khexacyanoferrat
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 17.12.2006, 22:32

Beitrag von Khexacyanoferrat » 18.12.2006, 19:10

Hi chris21,

danke für deine Antwort. Klappt so schonmal sehr gut (obwohl mir so war als hätte ich das schon getestet :oops:)

Leider kommen jetzt Parameter doppelt vor. Durch die IF-Verzeigung wird

writepn-2.php zu logout.php?URL=/writepn-2.php?ID=2

Aber ich denke hier gibt es keine andere Möglichkeit als durchzutesten, welcher Parameter "geschluckt" werden soll.

Grüße
Kaliumhexacyanoferrat

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 18.12.2006, 19:49

Stimmt, mir ist gerade aufgefallen, dass Du den Rest gar nicht brauchst. Ich hatte nur PHP_SELF durch REQUEST_URI ersetzt, d.h. die "tatsächliche" Datei durch den Dateinamen der Anfrage.

Eigentlich sollte daher die erste Zeile reichen. Denn wenn der User auf die URI writepn-2.php weitergeleitet wird, wird er ja aufgrund Deiner mod_rewrite Regeln letztlich pnwrite.php?id=2 aufrufen. Demnach müsstest Du denn Querystring gar nicht an die URI anhängen.

Khexacyanoferrat
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 17.12.2006, 22:32

Beitrag von Khexacyanoferrat » 18.12.2006, 20:14

mhm ...

in diesem Falle würde aber Daten die per GET übergeben wurden einfach wegfallen? Ich kann also entweder alle Daten doppelt angeben oder welche verschlucken. im Beispiel:

pnwrite-2.php?Betreff=Text

-> logout.php?URL=/pnwrite-2.php
-> logout.php?URL=/pnwrite-2.php?ID=2&Betreff=Text

Ich denke, ich werde die URLs so designen das das wichtige in den umgeschriebenen URLs enthalten ist und das unwichtige beim Logout/Anmelden "geschluckt" wird. GET-Variablen verwende ich soweiso meist nur für Operationen, die nur einmal gültig sind (z.B. Bewertung eines Artikels).

Grüße und Danke!
Kaliumhexacyanoferrat

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag