wie ändert man eine PHPseite durch den status "eingellogt"

mraim

Grünschnabel
so ich hab eine frage zum loginsystem
( http://www.tutorials.de/forum/showthread.php?t=9684 )
ich habe das jetzt alles gemacht und das login funktioniert prima jetzt aber zu praxis ..
ich will das z.b. auf jeder geöffneten seite durch das login jetzt anstatt hallo gast, hallo "benutzername" steht aber wie soll ich das machen muss ich eine komplet neue seite machen so im stil
if eingellogt
main.logedin.php
else
main.php
also das ist die möglichkeit die mir einfällt aber das ist nicht gerade recourcen sparend da ich dann für jeden internenlink auf der seite 2 .php dateien machen muss :(
ich hab leider nicht die größte ahnung von .php aber ich denk das muss doch was mit dem z.b. main.php?=logedin .......

wär nett wenn mir jemand ne gute variante erklären könnte :)
thx
 
Hallo Rookie,

also ich würde
1. den Namen des Benutzer in einer Sessionvariable speichen, diese ist wärend der ganzen Session vorhanden und kann durch einen einfachen Aufruf auf jeder Seite, dargestellt werden.

oder 2.
den Namen im Aufrufsring mitführen main.php?benutzername=XXX

Soviel zur Theorie:

Zu Punkt 1: wegen der Sessionvariablen hab ich den Aufruf momentan nicht im Kopf (reiche ich nach)

zu Punkt 2: Einfach mit PHP abfragen ob es die Variable benutzername gibt
<?
if (benutzername)
{ echo"hallo $benutzername";}
else
{ echo"hallo gast";}
?>


Hoffe mal ich hab deine Frage auch richtig verstanden

Gruß
 
hmmm ja das ist schon mal gut das war genau meine frage !

aber was heißt
"if (benutzername)"
"wenn bunutzername" ?
und muss ich für die variable $benutzername nicht noch eine datei includen ?
in dem fall des tutorials (von oben) muss ich doch die login.php includen oder woher krieg ich die variable her ?

PS : ist punkt 1 leichter ? wenn du sagst das es sowieso mitgeführt wird ...

THX ! :)
 
hier mal schnell die Sessionversion ist aufjedenfall schöner und besser:

wenn der Login erfolgreich war (login.php) den benutzername in eine SESSION schreiben:

$benutzername="JF";
session_start();
session_register("SESSION_benutzer");
$SESSION_benutzer=$benutzername;

Um nun diese wieder auf den anderen Seiten auszulesen mußt du auf allen Seiten
jetzt nach der SESSION abfragen z.B. :

<?php

session_start();

?>
...

<?php

if($SESSION_benutzer=="")
{
echo"Hallo Gast";}
}
else
{
echo"Hallo $SESSION_benutzer";}
}

?>

sollte so gehen

Gruß
 
Zuletzt bearbeitet:
Also ich würde das session_start() sofort auf der Index Seite machen.

Wenn sich dann der User erfolgreich eingelogt hat würde ich

$_SESSION["user"] = $eingelogter_user;

machen.

Dann einfach vor deiner Ausgabe die Abfrage:



if($_SESSION["user"])
{
echo("Hallo ".$_SESSION["user"]);
}
else
{
echo("Hallo Gast");
}


Peace SMO
 
Zuletzt bearbeitet:
start session muss immer zu anfang der seite, am besten 1. oder 2te zeile.. ich hab auch momentan problem mit meinem login script =))

und dann zu deinem Code:

PHP:
if($_SESSION["user"])

heisst: Wenn SESSION USER

ja.. was is sie denn?!

mach draus:
PHP:
if(isset($_SESSION["user"]))
{ echo "<div align='center'>Hallo ".$_SESSION["user"]."</div>"; }
else
{ echo "<div align='center'>Hallo Gast</div><br>";
echo "<div align='center'><h href='wo_auch_immer/login.php'>Einloggen</a></div><br>";
 }
mit ISSET fragst du "OB_GESETZT"
wenn du
if(!isset(bla))
machst.. fragst du nach "OB_NICHT_GESETZT"

vielleicht hilf das ein wenig.

mfg
 
Zurück