Zurück zur vorletzten Seite

@Sven es soll nur mit PHP sein!

Wenn nicht, dann speicherst du die Adresse der Profilseite bspw. in einer Session-Variablen

Wie gelang ich denn an die Adresse?
Die Adressen sehen zum Beispiel so aus: profil.php?profil=user

schiese
 
Speichere einfach bei jedem Anfrage die angeforderte Adresse ($_SESSION['REQUEST_URI']-Variable) und gegebenenfalls noch die Anfrage-Methode ($_SERVER['REQUEST_METHOD']-Variable) in einem Sitzungs-Array. Die Anfrage-Methode kann in dem Fall sinnvoll sein, als dass keine Post-Anfragen berücksichtigt werden, die meist nur für Formularverarbeitung verwendet werden.
 
Folgendes wäre möglich, um den Verlauf aufzuzeichnen:
PHP:
<?php

	session_start();

	if( !isset($_SESSION['history']) ) {
		$_SESSION['history'] = array();
	}
	if( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
		$_SESSION['history'][] = $_SERVER['REQUEST_URI'];
	}

	…

?>
Auf die vorletzte Seite könnte dann mit Folgendem weitergeleitet werden:
PHP:
<?php

	session_start();
	$historyGo = -2;

	if( isset($_SESSION['history'][count($_SESSION['history'])-1+$historyGo]) ) {
		header('Location: http://'.$_SERVER['HTTP_HOST'].$_SESSION['history'][count($_SESSION['history'])+$historyGo], true);
		exit;
	}

?>
 
PHP:
<?php 
//profil.php
session_start();
if(!$eingeloggt)
  {
    $_SESSION['redirect']=$_SERVER['REQUEST_URI'];
    header('Location:login.php');exit();
  }
elseif(isset($_SESSION['redirect']))
  {
    unset($_SESSION['redirect']);
  }
?>
.......

PHP:
<?php 
//login.php
session_start();
if($eingeloggt && isset($_SESSION['redirect']))
  {
    header('Location:'.$_SESSION['redirect']);exit();
  }
  
?>
 
Zurück