Loginmenü nur anzeigen wenn man eingeloggt ist
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
beispiel
benutzername
code
date
datei
datenbank
datum
einloggen
formular
header
http
leute
login
session
set
spalte
sperre
sponsor
update
-
Liebe User,
Wie bekomme ich es hin, dass die Menüpunkte nur beim Einloggen sichtbar sind. Mit Php nehme ich an, aber ich weiß den Code nicht und so gut bin ich Php noch nicht
Z.b. jetzt bei einem Paidmailer..
Hier steht zuerst:
Login
Anmelden
Regeln
und nach dem einloggen soll dass verschwinden und z.b. das angezeigt werden:
Konto
Einstellungen
Mailhistory
Wenn ich etwas unklar erklärt habe, bitte weißt mich darauf freundlich hin..
Beitrag geändert: 3.9.2008 12:23:23 von shezcrazy -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dafür gibt es mehrere Möglichkeiten. Man kann es zum Beispiel mit einem Cookie machen:
Beim Login setzt du den Cookie:
setcookie("eingeloggt", $username, time() + 300);
und bei dener navi schaust du dann:
if(isset($_COOKIE['eingeloggt'])) { // seiteninhalt mit der eingeloggt-navi } else { // seiteninhalt mit der ausgeloggt-navi }
Das ist nur schnell dahin geschrieben, sollte aber funktionieren.
mfg my-selfmade
Deit: nach 5 Minuten ist man automatisch ausgeloggt, aber du kannst die Zeit bis zum Aoto-Logout ja noch verstellen...
Beitrag geändert: 3.9.2008 12:31:05 von my-selfmade -
ermm.. und wie funktioniert das jetzt genau mit dem cookie x.x?
Soll ich den Code mal Posten?
<?php require('config/config.php'); $db = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); mysql_select_db($dbname,$db) or die(mysql_error()); if($login){ $daten=mysql_query("select * from mt_user where user='$user'"); if(mysql_num_rows($daten)>0){ $uname=mysql_result($daten,0,"user"); $free=mysql_result($daten,0,"free"); $sperre=mysql_result($daten,0,"sperre"); $upass=mysql_result($daten,0,"pwd"); $sponsor=mysql_result($daten,0,"sponsor"); } if($user==""){ $update="<center>Bitte einen Benutzername eingeben.</center>"; }else{ if($pwd==""){ $update="<center>Bitte ein Passwort eingeben.</center>"; }else{ if($user!="$uname"){ $update="<center>Benutzername wurde nicht gefunden.</center>"; }else{ if($pwd!="$upass"){ $update="<center>Passwort falsch.</center>"; }else{ if($sperre==1){ if($free==1){ if($upass==$pwd){ $ltime=time(); mt_srand((double)microtime()*1000000); $randval = mt_rand(); $sessionid=md5($randval); $expire = time() + 60*15; $zeit2 = time (); $nichtmehrgueltig = $zeit2-900; $ask= "UPDATE mt_user SET last_login='0' WHERE last_login <= $nichtmehrgueltig"; $result = mysql_query($ask) or die(mysql_error()); $date = date("d.m.Y"); $query="UPDATE mt_user SET last_login='$zeit2' WHERE user = '$user'"; $result=mysql_query($query); mysql_query("update mt_user set session='$sessionid',expire='$expire' where user='$user'"); $lastaction = time(); mysql_query("UPDATE mt_user SET lastaction = '$lastaction' WHERE user = '$user'"); if($sponsor==0){ header ("Location: ./members/loginbereich.php?sessionid=$sessionid"); die; }else{ header ("Location: ./sponsoren/loginbereich.php?sessionid=$sessionid"); die; } }else{ $update="Falscher Benutzername oder Passwort."; }}else{ $update="Account ist noch nicht Freigeschaltet. In der Mail die Sie nach der Anmeldung bekommen haben, befindet sich ein Link, um den Account freizuschalten."; }}else{ $update="Account wurde vom Admin gesperrt."; }}}}}} ?> <?php include("header.php"); ?> <html> <head> <title>Login</title> </head> <body> <form method="POST" action="login.php"> <p align="center"><b><font size="2" face="Verdana">Loginbereich<br><br><?php echo"$update"; ?></font></b></p> <div align="center"> <center> <table style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="3"> <tr> <td width="100"><font size="2" face="Verdana"><b>Benutzername:</b></font></td> <td width="100"><input class="inputfeld2" name="user" maxlenght="20" size="20"></td> </tr> <tr> <td width="100"><font size="2" face="Verdana"><b>Passwort:</b></font></td> <td width="100"><input class="inputfeld2" type="password" name="pwd" maxlenght="20" size="20"> </td> </tr> <tr> <td colspan="2"> <p align="center"> <input type="submit" class="inputfeld2" value="Login" name="login"></td> </tr> </table> </center> </div> <p align="center"><a href="passwort.php">Benutzerdaten vergessen?</a></p> <p align="center"><a href="aktivlink.php">Aktivierungslink erneut zuschicken</a></p> </body> </html> <? include("footer.php"); ?>
Beitrag geändert: 3.9.2008 12:51:43 von shezcrazy -
Ich würde es mit Session machen. Einfach bei jeder deiner Seite oben hinschreiben
session_start ();
und z.B. immer als erstes eine Datei includen die folgendermaßen aussieht:
<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: formular.php"); //eben die Seite wo sich die Leute einloggen sollen } ?>
beim einloggen fragst du aus der Datenbank ab, und schreibst die ID in die $_SESSION["user_id"].
das ausloggen machst du dann so:
<?php ob_start (); session_start (); session_unset (); session_destroy (); header ("Location: formular.php"); //eben die Seite wo sich die Leute einloggen sollen ob_end_flush (); ?>
Gruß, Prog
Beitrag geändert: 3.9.2008 16:39:11 von prog -
Ich würde es mit Session machen. Einfach bei jeder deiner Seite oben hinschreiben
session_start ();
und z.B. immer als erstes eine Datei includen die folgendermaßen aussieht:
<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: formular.php"); //eben die Seite wo sich die Leute einloggen sollen } ?>
beim einloggen fragst du aus der Datenbank ab, und schreibst die ID in die $_SESSION["user_id"].
das ausloggen machst du dann so:
<?php ob_start (); session_start (); session_unset (); session_destroy (); header ("Location: formular.php"); //eben die Seite wo sich die Leute einloggen sollen ob_end_flush (); ?>
Gruß, Prog
Beitrag geändert: 3.9.2008 16:39:11 von prog
Ich glaube ihr hab das noch nicht ganz verstanden :P!
Ich möchte das haben das z.b. wenn da steht
Login
Bla Bla Bla
Das soll weg nach dem Einloggen.
Wenn man eingeloggt ist, soll das Menü nicht im Content stehen sondern in der Spalte wo login drin stand.. Und jetzt möchte ich nur noch wissen wie das geht. Weil das Menü steht im Content und wenn man dann FAQ aufruft, dann is man wieder ausgeloggt und das nervt ja schließlich auch wenn man dauernd sich wieder einloggen muss x.X. I- jemand eine Idee wie ich das hinbekommen kann?
Beitrag geändert: 4.9.2008 10:26:16 von shezcrazy -
Das Problem mit dem ständigen Ausloggen ist mit sessions zu lösen. Hast du bei dir vielleicht Cookies ausgeschaltet. Dann musst du entweder Cookies einschalten oder mit etwas mehr Aufwand an jeden Link die session id anhängen(davon rate ich dir ab).
Frag lieber mit mit JS oder mit einem Testcookie ab ob Cookies eingeschaltet sind weise den Nutzer daraufhin.
Mit JS:
if (navigator.cookieEnabled == false) //Dann sind die Cookies aus
Mit PHP musst du zuerst ein Testcookie setzten, und danach abfragen ob es noch existiert.
Dann fragst du wegen dem Menü eben an beiden Stellen ab:
im Content:
if (!isset ($_SESSION["user_id"])) //Dann das Menü anzeigen
in der Login Spalte
if (isset ($_SESSION["user_id"])) //Dann das Menü anzeigen
Ich hoffe ich habe dein Problem richtig verstanden;)
Gruß, Prog
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage