Falsches Verständnis von global?!

Hallo zusammen,
ich hab ein kleines Problem mit meinen global Variablen.
Ich arbeite eigentlich total ungern mit globalen Variablen, muss sie aber nun einmal verwenden. Da ich nun so gut wie nie was damit gemacht habe, glaub ich das ich ein falsches Verständnis habe vom setzen und erhalten von globalen Variablen.

Ich hab schon im Forum gesucht aber leider zu so etwas simpln nix gefunden.
Ich hoffe ihr könnt mir weiterhelfen.

Zwecks test hab ich mir eine kleine Login Seite gebaut.

PHP:
<?php
session_start();
var_dump($_SESSION);
echo "<br><br>session id INHALT:  ".session_id();
echo "<br><br><br>";

	if(isset($_POST['Logout']))
	{

		session_unset();
		session_destroy();
		header("location: Login.php");
	}
	if(isset($_SESSION['wert']))
	{
		global $myobject;
		
		echo "In der globalen variable steht :".$myobject;
		
		$htmlform = "<form method='POST' name='LoginOut' action='Login.php'>" ;
		$htmlform .= "<input type='submit' name='Logout' value='Logout'/>";
		echo $htmlform;
	}
	if(!isset($_POST['auth_send']) && !isset($_SESSION['wert']))
	{
		global $myobject;
		$myobject="Test String";
			
		echo "In der globalen variable steht :".$myobject;
		echo "<br><br>";	
		$htmlform = "<form method='POST' name='Login' action='Login.php'>" ;
		$htmlform .= "<input type='Text' name='Username' value='user'/>";
		$htmlform .= "<input type='Text' name='Password' value='test'/>";
		$htmlform .= "<input type='submit' name='auth_send' value='Send'/>";
		echo $htmlform;
	}
	else if(isset($_POST['auth_send']) && !isset($_SESSION['wert']))
	{
		if($_POST['Username']=='user' && $_POST['Password']=='test')
		{
			$_SESSION['wert']='Der user hat ne Session';
			header("location: Login.php");
		}
		else 
		{
			echo "Login fehlgeschlagen";
		}
	}

?>

Mein Problem ist das ich immer dachte wenn ich global $myobject; mit einem wert befülle und ich die Seite durch header weiterleite mir der wert im nächsten(gleichen) skript wieder zur Verfügung steht. Muss ich die Wertzuweisung anders gestalten um den Wert zu erhalten?


Viel Dank im vorraus

Soltan
 
Nein, global bedeutet wenn ich richtig informiert bin nur, dass die Variable in jeder Funktion, in jeder Klasse ... verfügbar ist, alleridngs immer nur innerhalb eines Skriptdurchlaufs.

Für das was du willst musst du Coockies verwenden oder Sessions die dann allerdings auch wieder Coockies verwenden.
 
Oder du speicherst die Daten serverseitig entweder in einer Datenbank oder in einer Datei, welche dann einen serialisierten Wert enthält. Denn musst du dann auf beim nächsten Aufruf laden, deserialisieren und in eine Variable packen, vielleicht noch als globale Variable deklarieren. Global heißt wirklich nur, dass die Variable mit ihrem Wert im globalen Namensraum (scope) verfügbar ist, im Gegensatz zu einer Variablen, die nur in ihrem Namensraum verfügbar ist (bspw. ist eine lokale Variable, welche du außerhalb einer Funktion definierst, nicht innerhalb dieser Funktion verfügbar).
 
Zurück