kostenloser Webspace werbefrei: lima-city


Loginmenü nur anzeigen wenn man eingeloggt ist

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    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
  5. p*********o

    Ich halte ein Cookie dafür für sehr unsicher, eine text Datei mit dem Inhalt "eingeloggt" ist schnell gefälscht... Für solche Zwecke verwendet man Sessions:

    http://de.php.net/session

    Ein Beispiel Login-Script:
    http://www.administrator.de/php_-_einfaches_login_script_mit_sessions.html

    MFG
  6. 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
  7. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.


    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
  8. 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

  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!