PHP Ich verstehe meine Weiterleitung nicht mehr o.O

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hi hab mir einen testordner erstellt: www.domain.de/test/...
Nun befinde ich mich in dem ordner test wo alle Dateien stehen

dort drinne hab ich so eine include-datei in dem ordnerverzeichnis (include/login/loginform.inc.php) angelegt...

Auf der index.php wird die loginform.inc.php includiert...

In der loginform.inc.php stehen Abfragen die bei bestimmten Gegebenheiten wie z.B. bei falschem login den Benutzer immer wieder auf die zugänglichen seiten (im diesem Fall die index.php) zurückleiten soll

Im Code bedeutet das also
PHP:
if(logged_in())
{
	//Wenn in der Adressleiste eine userid gesetzt wurde,dann...
	if(!empty($_GET['userid']))  
	{ 
		//User scheint offiziell eingeloggt und kann begrüßt werden :-)
		$userid = $_GET['userid'];   
		if($userid) 
		{ 
			$user = get_username($userid);
			echo 'Willkommen '.$user.'.
				<a href="login/admin/admin_menu.php?userid="'.$userid.'"">Adminbereich</a>
				<a href="include/login/logout.inc.php">Logout</a>';  
		}  
	}
	else header('location: ../../index.php');
}
Wenn die loginform.inc.php aufgerufen wird, dann wird geprüft,...
...ob der Benutzer eingeloggt ist

Wenn nicht dann soll der zu der index.php weiterleiten und das bedeutet das der User so nicht zugriff auf alle anderen Seiten bekommt wozu er nicht authorisiert ist...

Was ich aber komisch finde ist das der mich dann in den Ordner vor dem Ordner test weiterleitet und dort die index.php aufrufen will...

Wenn ich ein ../ in der header(location:) entferne, dann springt der in den zwischenordner (include)
Wenn ich beide ../ entferne, dann bin ich in dem gleichen ordner wie die loginform.inc.php

Warum zum Teufel überspringt der den test-Ordner einfach wenn ?

Nochmal zusammengefasst:
header('location: ../../index.php'); => www.domain.de/index.php
header('location: ../index.php'); => www.domain.de/test/include/index.php
header('location: index.php'); => www.domain.de/test/include/login/index.php

Der soll aber mit:
header('location: ../../index.php'); in www.domain.de/test/index.php landen...

total komisch irgendwie :-/
 
Richtig. Der HTTP/1.1-Standard verlangt sogar absolute URIs. Die meisten Clients (Browser) schlucken zwar auch relative Angaben, korrekt ist das aber nicht.
 
Ja schön und gut nech...
Ihr habt ja recht...IE schafft die Rückleitung
Und FF springt 2 Ordner zurück...

Aber das ist nur bei dieser Rückleitung so
Warum dann nur bei dieser?
Aber was ist dann wenn meine Seite umfangreicher werden würde?
Dann müsste ich wenn ich meine Seite auf einen anderen FTP, falls dieser nicht mehr ausreichen sollte, unter einer anderen Domain laufen lassen würde dann alle Weiterleitungen ändern... :freak:

Kann man das net eleganter auswählen?
 
Zuletzt bearbeitet:
Hast du es schon damit versucht:

PHP:
header('location: /../../index.php');
 
Zurück
Oben