Session in Funktion
waki
- php
0 Tom
Hallo,
habe folgendes Problem bei PHP-Version 4.3.0:
folgende Funktion wird z.B. bearbeitet:
function show_user() {
echo "it";
}
Allerdings diese Funktion nicht - irgendwie wird die Session per Funktion nicht übergeben, sonst klappt die Session aber (z.B. bei einer Abfrage ohne Funktion):
function show_user() {
if ($HTTP_SESSION_VARS["User"] == "Administrator") {
echo "Admin";
} else {
echo "kein Admin"
}
}
-> im Laufe des Sktipts:
show_user();
Trotz Session als "Admin" wird dies nicht erkannt und "kein Admin" ausgegeben - obwohl man als Admin eingeloggt ist, ohne Funktion klappt es nämlich:
if ($HTTP_SESSION_VARS["User"] == "Administrator") {
echo "Admin";
} else {
echo "kein Admin"
}
Folgendes möchte ich vermeiden (Übergabe des Parameters), weil es sonst zuviel Schreibarbeit wird, die ich mir ja mit der Funktion ersparen möchte, die Abfrage wird nämlich mehrmals in einem Skript gebraucht:
show_user($HTTP_SESSION_VARS["User");
Thx,
waki
Hello,
folgende Funktion wird z.B. bearbeitet:
function show_user()
{
echo "it";
}
Das ist keine Funktion sondern eine ziemlich dämlich Prozedur, die zudem nur einen überflüssigen Wrapper darstellt.
echo 'it';
würde es hier auch tun.
Allerdings diese Funktion nicht - irgendwie wird die Session per Funktion nicht übergeben, sonst klappt die Session aber (z.B. bei einer Abfrage ohne Funktion):
function show_user()
{
if ($HTTP_SESSION_VARS["User"] == "Administrator")
if ($_SESSION['User'] == 'Administrator')
{
echo "Admin";
}
else
{
echo "kein Admin"
}
}-> im Laufe des Sktipts:
show_user();Trotz Session als "Admin" wird dies nicht erkannt und "kein Admin" ausgegeben - obwohl man als Admin eingeloggt ist, ohne Funktion klappt es nämlich:
Ja nee, si scho klar... *grins*
Die alten sogenannten globalen Variablen waren nur "halbglobal". In der Funktion hättest Du sie mittels GLOBAL erst einmal bekannt machen müssen.
Das kannst Du Dir mit den neuen "Superglobalen Arrays" http://de3.php.net/variables.predefined ersparen. Die sind bereits bekannt in Deiner Funktion
alt:
if ($HTTP_SESSION_VARS["User"] == "Administrator")
{
echo "Admin";
}
else
{
echo "kein Admin"
}
neu:
if ($_SERVER['User'] == 'Administrator')
{
echo "Admin";
}
else
{
echo "kein Admin"
}
Das klappt dann auch innerhalb einer Funktion.
Folgendes möchte ich vermeiden (Übergabe des Parameters), weil es sonst zuviel Schreibarbeit wird,
Faules Schwein ;-))
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom