Ob_start: Der Header leitet weiter, die Ausgabe bleibt aus

native0speaker

Grünschnabel
Hallo PHPler^^,
Nachdem ich die PHP manuals zu allen Ob_.... Varianten durchgelesen habe und auch im Forum müsste doch....

PHP:
	if ( time() > ($sessionTime + 1) && $kontrolle != 1) {

		ob_start();

		echo 'Die Session ist abgelaufen und die Sitzung beendet. Der Sicherheitslogout wird eingeleitet';
		header('Location: http://127.0.0.1:1234/xampp/freizeitpark_d/logout.php');

		ob_end_flush();
		
	}
... funktionieren. Die If Anweisung stellt sicher, dass die abgelaufene Session der Grund für den Logout ist.
Damit der USer eine Begründung für den Rauswurf hat die echo Aussgabe.

Problem: der Header leitet wie gewünscht weiter, die Ausgabe bleibt aus.
Danke im Vorraus für tips.
 
Du gibts einen Text aus und Dann leitest du weiter. Logischerweise sieht man dann nur den Text von logout.php und nicht mehr den von der aktuellen Seite.
Du musst den Text an logaout.php übergeben und dort ausgeben.
 
Danke, ich hab tatsächlich den Wald vor lauter Bäumen nicht gesehen. Lösung:
PHP:
	if ( time() > ($sessionTime + 1) && $kontrolle != 1) {
		$uebergabe = 'Die Session ist abgelaufen und die Sitzung beendet. Der Sicherheitslogout wird eingeleitet';
		header("Location: http://127.0.0.1:1234/xampp/freizeitpark_d/logout.php?uebergabe=$uebergabe");
	}

auf das Skript logout.php.....
PHP:
session_start();
echo 'Status: ' . $_GET['uebergabe'] . '<br>';
include_once('sessionhelpers.inc.php');

Wichtig war nur, dass der Header mit " und nicht mit ' geschrieben wird-ansonsten wurde bei mir $übergabe nicht aufgelöst und als String an uebergabe übergeben^^.

solved
 
native0speaker hat gesagt.:
PHP:
session_start();
echo 'Status: ' . $_GET['uebergabe'] . '<br>';
include_once('sessionhelpers.inc.php');
Ganz gefährlich ;)
Lieber so:
PHP:
echo 'Status: ' . htmlentities($_GET['ubergabe', ENT_QUOTES|ENT_HTML5) . '<br />';
Ansonsten könnte jemand clientseitigen HTML- und JavaScript-Code einfügen.
 

Neue Beiträge

Zurück