Fragen zum Thema HTML, JavaScript, PHP
-
Kmitska
- Beiträge: 349
- Registriert: Fr Sep 23, 2011 8:49 pm
- Wohnort: Karlsruhe, Pforzheim
Beitrag
von Kmitska » Do Mär 08, 2012 9:55 pm
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:
extern.cpp
Kind regards,
Kmitska
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Fr Mär 09, 2012 12:35 am
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;
}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
bbbl
- Beiträge: 80
- Registriert: So Jul 19, 2009 12:04 am
Beitrag
von bbbl » Fr Mär 09, 2012 1:35 am
Eine weitere Möglichkeit wäre der Zugriff über das superglobale Array, $GLOBALS:
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
secure.php
Code: Alles auswählen
<?php
include('globals.php');
echo $IsLogged; //true
function a() {
echo $IsLogged; //undefined
}
function b() {
echo $GLOBALS['IsLogged']; //true
}
?>
-
Kmitska
- Beiträge: 349
- Registriert: Fr Sep 23, 2011 8:49 pm
- Wohnort: Karlsruhe, Pforzheim
Beitrag
von Kmitska » Fr Mär 09, 2012 5:48 pm
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(); ?
-
C@mper
- Beiträge: 88
- Registriert: Mo Nov 15, 2010 3:30 pm
Beitrag
von C@mper » Fr Mär 09, 2012 7:36 pm
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
-
Kmitska
- Beiträge: 349
- Registriert: Fr Sep 23, 2011 8:49 pm
- Wohnort: Karlsruhe, Pforzheim
Beitrag
von Kmitska » Fr Mär 09, 2012 9:14 pm
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?
-
C@mper
- Beiträge: 88
- Registriert: Mo Nov 15, 2010 3:30 pm
Beitrag
von C@mper » Sa Mär 10, 2012 10:49 am
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.
-
Kmitska
- Beiträge: 349
- Registriert: Fr Sep 23, 2011 8:49 pm
- Wohnort: Karlsruhe, Pforzheim
Beitrag
von Kmitska » Sa Mär 10, 2012 1:18 pm
Hallo,
danke Dir!
Lösung:
Habe im Google kurz nachgeschaut und kam auf den Befehl: "isset();"