[PHP] - Sessionabfrage will nicht...



  • Original erstellt von Tobsen:
    **
    Wäre 'ne Möglichkeit, aba da gibts unter Garantie was besseres 😉
    MfG

    Tobsen**

    du sagst es... die variable is username... ausschnitt der login.php:

    <?php
    session_start();
    session_register("username");
    ?>
    
    <?
    include ("config.php");
    
    $password=crypt($password,$schluessel);
    $password .= "\n";
    $log=0;
    
    $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert!
    //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt!
    while (!feof($userdatei))
    {
    $zeile = fgets($userdatei,50);
    $userdata = explode("|", $zeile);
    if ($userdata[0]==$user
    
    .......
    ...
    


  • <?php

    if(login_erfolgreich == true)
    {
    session_start();
    $_SESSION['username'] = $username;
    }

    if(empty(\_SESSION['username']) || !isset(_SESSION['username'])
    {
    echo "login";
    }
    else
    {
    echo "logout";
    }
    ?>



  • ok. thx, habe jetzt

    <?php
                                    if(empty($_SESSION['username']) || !isset($_SESSION['username']))
                                    {
                                    echo "<br><a href=\"log_in.php\">Login</a>";
                                    }
                                    else
                                    {
                                    echo "<br><a href=\"logout.php\">Logout</A>";
                                    }
                                    ?>
    

    und in der Login.php

    <?php
    session_start();
    session_register("username");
    $_SESSION['username'] = $username;
    ?>
    

    keine Ahnung, aber es will immer noch net klappen... ... komisch! wirlich komisch.. 😃 Oder bin ich zu blöd??? 😃



  • session_register() kannste schon mal weglassen. Und wenn usernameleerist,wirdimmerloginangezeigt,dajadannempty(username leer ist, wird immer login angezeigt, da ja dann empty(_SESSION['username']) true ist.



  • okay.. warte..
    Hier mal den ganzen code der Login.php

    <?php
    session_start();
    session_register("username");
    $_SESSION['username'] = $username;
    ?>
    
    <?
    include ("config.php");
    
    $password=crypt($password,$schluessel);
    $password .= "\n";
    $log=0;
    
    $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert!
    //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt!
    while (!feof($userdatei))
    {
    $zeile = fgets($userdatei,50);
    $userdata = explode("|", $zeile);
    if ($userdata[0]==$username && $userdata[1]==$password)
    {
    $log=1;
    }
    }
    fclose($userdatei);
    if ($log==1)
    {
    ?>
    
    <br><br><br><br><br><br><hR><center><b>Login erfolgreich!</b> Bitte klicke <a href="index.php">hier</a></center><hr>
    <?
    }
    else
    {
    die ("Benutzername oder Passwort falsch!<hr><a href=\"log_in.php\">Erneut versuchen</a>");
    }
    ?>
    

    Könnte es sein, dass ich _SESSION['username']=username zu früh gesetzt habe?



  • Also ich sehe da mehrere Fehler:

    1. if (userdata[0]==username && userdata[1]==password)
    - da scheint $username leer zu sein. (sehe jedenfalls nicht wo du es definierst!?

    2. session_register() kannst du echt einfach weglassen

    3. Du sollst $_SESSION['username'] = $username erst dann der session zuweisen, wenn der login erfolgreich war.

    Also z.B. if(login == erfolgreich)
    {
    weise session die variable username zu -> $_SESSION['username'] = $username;
    }

    sonst ist die bedingung ja immer true!
    so das wars nach erstem überfliegen. 😉

    Falls es immer noch nicht klappt, schreib nochmal!
    MfG

    Tobsen



  • also.

    1. FEHLER SIND ES KEINE!
    a) Denn der Login klappt auch sonst IMMER wunderbar!
    b) Der Bezug kommt aus dem Formular <input type="text" name=username....
    c) das Forumar verweist auf <form action="member_login.php" method=....

    2. Eben dorthin, wo der COder der login.php ist...
    a) Hab _SESSION['username']=username; nach IF gesetzt...
    b) Funktioneirt leider immer noch nicht
    c) 😕 😕

    Mfg
    Pro



  • 1. ok, tschuldigung! 😉
    2. schick nochmal den code so wie du ihn jetzt hast, dann schau ich mir das nochmal offline an.
    MfG

    Tobsen



  • <?php
       session_start();
    ?>
    
    <?
    include ("config.php"); 
    
    $password=crypt($password,$schluessel);
    $password .= "\n";
    $log=0;
    
    $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert!
    //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt!
    while (!feof($userdatei))
    {
      $zeile = fgets($userdatei,50);
      $userdata = explode("|", $zeile);
      if ($userdata[0]==$username && $userdata[1]==$password)
      {
        $_SESSION['username'] = $username;   
        $log=1;  
      }
    }
       fclose($userdatei);
    if ($log==1)
    {
      echo "<br><br><br><br><br><br><hR><center><b>Login erfolgreich!</b> Bitte klicke <a  href='index.php'>hier</a></center><hr>";
    }
    else
    {
       die ("Benutzername oder Passwort falsch!<hr><a href=\"log_in.php\">Erneut versuchen</a>");
    }
    ?>
    
    //Dann in der index.php folgendermaßen anfangen:
    
    <? session_start();
       if(empty($_SESSION['username']) || !isset($_SESSION['username']))
       {
        echo "Login";
       }
       else
       {
        echo "Logout";
       }
    ?>
    

    [ Dieser Beitrag wurde am 01.05.2003 um 13:33 Uhr von Tobsen editiert. ]



  • Ok. Vielen Dank!
    Klappt so! 😃


Anmelden zum Antworten