• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Global oder doch nicht

jamaica-man

New member
Ich habe ein problem mit den globalen variablen in PHP, ich baue eine header-footer seite, die logischerweise auch mit includes arbeitet. innerhalb der einzelnen includeten Seiten werden wieder einzelne page-elemente oder functionsddefinitionen per include eingebunden. in einer solchen datei steht nun folgender code:


PHP:
function adminvalidate($username,$passwort)
{
$sql="Select `id` from `modul` where `username`='$username' and `password`='$password' limit 1";
		if (!$result=mysql_unbuffered_query($sql))
		{
		$content["Subject"]="Fehler bei der SQL Abfrage";
		$content["sql_abfrage"]="$sql";
		$content["describtion"]="Die Einlogabfrage konnte nicht durchgefürht werden";
		error_mail ("jamaica-man@gmx.net",$content);
		}
		else
		{
				if ($daten=mysql_fetch_assoc($result))
				{
				$cmm=$daten["id"];
				header(path_url_root."&cmp=5&PHPSESSID=".session_id());
				}
				else
				{
				$HTTP_SESSION_VARS["wrong_login"]="yes";
				header("Location: ".path_url_root."&cmp=1&PHPSESSID=".session_id());
				}
		}
}

path_url_root ist mit define als globale variable definiert
error_mail is eine fehlerabfangfunktion

die eigentlich frage bezieht sich auf

$HTTP_SESSION_VARS["wrong_login"]="yes";

weil ich auf diese variable ausserhalb der funktion leider nicht zugreifen kann. Is das so gewollt, hab ich was falsch gemacht?
muss man dem script sagen, das er alle session-variablen global sehen soll?

danke schon mal im vorraus
 
bin selber PHP-Anfänger aber in den ersten paar Seiten meines buches stand glaub ich so was dirn, hier mal das Beispiel:
Code:
$a = 'Ich habe einen wert';
function test()
{
echo $a;
}
echo test();
Ausgabe: -nichts-
Code:
$a = 'Ich habe einen wert';
function test()
{
global $a;
echo $a;
}
echo test();
Ausgabe: Ich habe einen wert

hoffe das hilft dir einwenig weiter
 
Wieso skalare werte?

Wenn ich die variable path_url_root nich global setzte, kann ich sie doch nicht als variable lassen, dann kann ich sie doch nicht innnerhalb einer funktion verwenden.

was sind skalare werte an sich? klingt ja toll in der definition, aber vorstellen kann ich mir da leider nichts drunter.
ich habe da sowas definiert wie "http://localhost/cms/index.php?page=cms"

werde den tipp von marc_tanner mal ausprobieren
bis denne
mfg jamaica-man
 
Lösung gefunden

Danke an alle die mir geholfen haben, habe ein Lösung gefunden, folgendermassen geht es:

PHP:
<?
function adminvalidate($username,$passwort)
{
$sql="Select `id` from `modul` where `username`='$username' and `password`='$password' limit 1";
		if (!$result=mysql_unbuffered_query($sql))
		{
		$content["Subject"]="Fehler bei der SQL Abfrage";
		$content["sql_abfrage"]="$sql";
		$content["describtion"]="Die Einlogabfrage konnte nicht durchgefürht werden";
		error_mail ("jamaica-man@gmx.net",$content);
		}
		else
		{
				if ($daten=mysql_fetch_assoc($result))
				{
				$cmm=$daten["id"];
				header(path_url_root."&cmp=5&PHPSESSID=".session_id());
				}
				else
				{
				global $HTTP_SESSION_VARS;
				$HTTP_SESSION_VARS['wrong_login']="yes";
				header("Location: ".path_url_root."&cmp=1&PHPSESSID=".session_id());
				}
		}
}
?>
thx an alle
 
Zurück
Oben