Seite 1 von 1

Globale Variablen?

Verfasst: Do Mär 08, 2012 9:55 pm
von Kmitska
Hallo Leute,

noch eine Frage:

Ist es möglich mit PHP globale Variablen zu machen, also Werte, die für jede Datei gültig sind.

Verwendung:
Ein einfaches Beispiel: Ich will schauen, ob der User sich eingeloggt hat.

Bei C++ wäre es so (ein Beispiel):
main.cpp:

Code: Alles auswählen

bool IsLogged = false;
extern.cpp

Code: Alles auswählen

extern bool IsLogged;
IsLogged = true;
Kind regards,
Kmitska

Re: Globale Variablen?

Verfasst: Fr Mär 09, 2012 12:35 am
von Xin
Du kannst in Funktionen Variablen als global bezeichnen. In dem Fall wird dann eine vorhandene globale Variable verwendet statt eine neue lokale:

Code: Alles auswählen

$IsLogged = false;

function a()
{
  $IsLogged = true; // lokale Variable;
}

function b()
{
  global $IsLogged;

  $IsLogged = true; // globale Variable;
}

Re: Globale Variablen?

Verfasst: Fr Mär 09, 2012 1:35 am
von bbbl
Eine weitere Möglichkeit wäre der Zugriff über das superglobale Array, $GLOBALS:

Code: Alles auswählen

$GLOBALS["IsLogged"];
Um genau zu sein, brauchst du das global-Keyword nur, wenn du innerhalb eines anderen Scope (z.B. innerhalb einer Funktion) auf die Variable eines anderen Scopes zugreifen willst. Siehe folgendes Beispiel:

globals.php

Code: Alles auswählen

<?php
$IsLogged = true;
?>
secure.php

Code: Alles auswählen

<?php
include('globals.php');

echo $IsLogged; //true

function a() {
echo $IsLogged; //undefined
}

function b() {
echo $GLOBALS['IsLogged']; //true
}
?>

Re: Globale Variablen?

Verfasst: Fr Mär 09, 2012 5:48 pm
von Kmitska
Ich hatte eher an etwas gedacht... wo man sich einloggt und dann auch bei allen Seiten eingeloggt ist.
Muss es jedes mal über $_POST ermittelt werden oder eine Datei mit Variablen, das ich dann immer include(); ?

Re: Globale Variablen?

Verfasst: Fr Mär 09, 2012 7:36 pm
von C@mper
Zur Überprüfung, ob ein User eingeloggt ist, eignet sich eher $_SESSION. Diese setzt Du nach erfolgreichem Login und kannst /musst Du dann einfach auf jeder Seite überprüfen. Beim Beenden durch Logout/Timeout wird der $_SESSION gelöscht und der User muss sich wieder neu anmelden.

Siehe hier -> http://www.proggen.org/doku.php?id=php:sessions

Re: Globale Variablen?

Verfasst: Fr Mär 09, 2012 9:14 pm
von Kmitska
Hallo und danke,

habe jetzt noch ein Problem:

wenn ich die Session beende (Auslogge) bekomme ich einen Fehler wie dies hier:
Notice: Undefined index: logged in C:\xampp\htdocs\UserInterface\index.php on line 5

logged (Variable) wird ja in diesem Fall gelöscht, wie könnt ich dies beheben?

Re: Globale Variablen?

Verfasst: Sa Mär 10, 2012 10:49 am
von C@mper
Kmitska hat geschrieben: wenn ich die Session beende (Auslogge) bekomme ich einen Fehler wie dies hier:
Notice: Undefined index: logged in C:\xampp\htdocs\UserInterface\index.php on line 5
logged (Variable) wird ja in diesem Fall gelöscht, wie könnt ich dies beheben?
Eine "Notice" würde ich nicht unbedingt einen Fehler nennen. Zum einen besteht hier die Möglichkeit, error_reporting runter zu setzen, zum anderen und weitaus besser und schöner wäre es allerdings, wenn Du vor dem benutzen des Array Index prüfen würdest, ob dieser gesetzt ist, also existiert.

Re: Globale Variablen?

Verfasst: Sa Mär 10, 2012 1:18 pm
von Kmitska
Hallo,
danke Dir!

Lösung:
Habe im Google kurz nachgeschaut und kam auf den Befehl: "isset();"