• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eingeloggt bleiben funktion...ich find den Fehler nicht

Kojaky

Neues Mitglied
Hallo liebe Community, ja ich schon wieder, es geht um mein Loginscript.
Und zwar habe ich den Login erfolgreich auf Sessions umgestellt. Nun möchte ich aber dem User die möglichkeit bieten eingeloggt zu bleiben. Ich hab also eine Checkbox(name="staylogged") eingebaut und diese im loginscript abgefragt.
Das sieht im moment so aus
PHP:
<?php
session_start ();
    if(isset($_REQUEST['login'])){
error_reporting(E_ALL);
include ('****');
    
$connid =    mysql_connect(****,****,****);
if (!mysql_select_db ("****",$connid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
}
        
        if((trim($_REQUEST['nickname'])=='') OR (trim($_REQUEST['password'])=='')){
        
            header('location: ../?site=error&error=0');
        }
        else{
            $sql = "
            SELECT `accid`,`wuid`,`state`,`upass` FROM `log` WHERE wuid like '".mysql_real_escape_string($_REQUEST["nickname"])."'";
            $out = mysql_query ($sql);
            $statnthings = mysql_fetch_assoc($out);
            if (mysql_num_rows ($out) > 0) 
            { 
            
                if(MD5($_REQUEST['password']) !=($statnthings['upass']))
                {
                header('location: ../?site=error&error=1');
                }
                else{
                    if($statnthings['state'] == 11){
                    header('location: ../?site=error&error=8');
                    }else{
                        if($statnthings['state'] == 4){
                        header('location: ../?site=error&error=9');
                        }else{
                            if(isset($_POST['staylogged'])){
                            setcookie('username',$statnthings['wuid'], 0, '/');
                            setcookie('userid',$statnthings['accid'], 0, '/');
                            header ("location: ../?site=main");
                            }else{
                            $_SESSION["usrid"] = $statnthings["accid"]; 
                            $_SESSION["usrnam"] = $statnthings["wuid"]; 
                            header ("location: ../?site=main"); 
                            }
                        }
                    }
                }
                }else{header ("header('location: ../?site=error&error=1');");}
            
            }
    }else{header('location: ../?site=error&error=3');}
?>

So nachdem dies nun fertig war musste ich ja noch in den einzelnen inhalten die zusätzliche abfrage der Cookies einbauen. Also habe ich es so versucht:

PHP:
<?php
session_start ();
if(!isset($_SESSION['usrnam']) or ($_COOKIE['username'])){
echo "Du musst dich erst einloggen!";
}else{
echo "Du bist eingeloggt";
}
?>

Was ist daran Falsch? Der Session Login funktioniert zwar aber wenn die Checkbox "checked" ist und somit Cookies gesetzt und dann abgefragt werden sollen nicht.
Bitte helft mir!
 
Habe für meinen Ansatz jetzt keine richtige Begründung, aber probiere es bei deinem zweiten Code mal damit in Zeile 3:
PHP:
if(!isset($_SESSION['usrnam']) || !isset($_COOKIE['username'])){
Womöglich wird die Abfrage ob ein Cookie gesetzt wurde nicht negativiesiert (habe dieses Wort glaube ich irgendwo mal gelesen) und somit als "nicht eingelogt" gehandhabt.
 
Zurück
Oben