Ergebnis 1 bis 6 von 6

Thema: Login / Logout 2mal klick Problem

  1. #1
    Erfahrener Benutzer Avatar von FLash
    Registriert seit
    10.01.2008
    Beiträge
    122

    Login / Logout 2mal klick Problem

    Ich hab ein komisches Problem auf meiner seite und ich komm da einfach nicht hinter wieso..

    Wenn ich mich einloggen will muss ich 2 mal den Login knopf drücken oder einmal die daten eingeben login drücken den tab schliessen einen neuen öffnen und dann bin ich auch eingeloggt.. das selbe beim logout knopf den muss ich auch 2 mal drücken..
    wenn ich mich allerdings schon mal eingeloggt und ausgeloggt habe ohne die seite zu schliessen dann geht das einwandfrei..

    ich glaub das letzte was ich in der Session.lib gefummelt habe war das kickout addon von stigma aber ich glaube das hatte damals trotzdem funktioniert.

    wahrscheinlich ist das wieder irgendwas was banales was ich übersehn hab

    hier der login zum testen:
    http://www.klickapig.de
    *entfernt*

    und meine session.lib

    PHP-Code:
    <?
    /*
    Datei : session.lib.php
    Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
    */
    @session_start();

    // Variabeln definieren
    if (!isset($_SESSION['login']))        $_SESSION['login']        = "";
    if (!isset($_SESSION['werber']))    $_SESSION['werber']        = "0";
    if (!isset($_SESSION['uid']))        $_SESSION['uid']        = "0";
    if (!isset($_POST['nickname']))        $_POST['nickname']        = "";
    if (!isset($_POST['passwort']))        $_POST['passwort']        = "";
    if (!isset($_POST['checkid']))        $_POST['checkid']        = "";
    if (!isset($_POST['autologin']))    $_POST['autologin']        = "";
    if (!isset($_GET['logout']))        $_GET['logout']            = "";
    if (!isset($_GET['ref']))            $_GET['ref']            = "0";


    if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];

    // Seiteneinstellungen laden...
    $pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));

    if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
        setCookie('uid','',time()-86400*30);
        setCookie('passwort','',time()-86400*30);
        setCookie('autologin','',time()-86400*30);
        $_SESSION['uid']        = "";
        $_SESSION['passwort']    = "";
        $_SESSION['login']        = "";
        header ("location: ".$domain."/wartung.php");
        die();
    }


    // Login
    if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {

        $_POST['nickname'] = addslashes($_POST['nickname']);

        $login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM 
                                            ".$db_prefix."_userdaten u
                                            LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
    WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");

        if (mysql_num_rows($login_check)) {
        $login_check = mysql_fetch_array($login_check);
            
                    // Wenn User noch nicht freigeschaltet!
            if ($login_check['status'] == 0) {
            $_SESSION['uid']        = "";
            $_SESSION['passwort']            = "";
            $_SESSION['login']        = "";
            $_GET['content'] = '/error/kein_zutritt';
            }
            
            // Wenn beim User alles O.K. ist!
            if ($login_check['status'] == 1) {
                db_query("UPDATE ".$db_prefix."_kontodaten SET ksession_status = '0', ksession_time = '0', login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$login_check['uid']." and passwort='".md5($_POST['passwort'])."'");
                if ($_POST['autologin'] == 'true') {
                setCookie('uid',$login_check['uid'],time()+86400*30);
                setCookie('passwort',$login_check['passwort'],time()+86400*30);
                setCookie('autologin','true',time()+86400*30);
                }
                $_SESSION['uid']        = $login_check['uid'];
                $_SESSION['passwort']            = $login_check['passwort'];
                $_SESSION['login']        = "true";
                header ("location: ".$domain);
                die();
            }
            
                    // Wenn User gesperrt wurde!
            if ($login_check['status'] == 2) {
               $_SESSION['uid']        = "";
               $_SESSION['passwort']    = "";
               $_SESSION['login']        = "";
               $_GET['content'] = '/error/user_gesperrt';
            }

        // Wenn es den User garnicht giebt    
        } else {
        $_GET['content'] = '/error/kein_zutritt';
        }

    } else {
    if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
    }

    // Autologin
    if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {
     
     // SecVMS change begin
     $_COOKIE['uid'] = (int)$_COOKIE['uid'];
     $_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
     // SecVMS change end
     
     $login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis`,`ksession_status` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
     if (mysql_num_rows($login_check)) {
     $login_check = mysql_fetch_array($login_check);
      if ($login_check['status'] == 1) {
      db_query("UPDATE ".$db_prefix."_kontodaten login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."'");
      $_SESSION['uid']  = $login_check['uid'];
      $_SESSION['passwort'] = $login_check['passwort'];
      $_SESSION['login']  = "true";
      }elseif($login_check['ksession_status'] == 2){
       setCookie('uid','',time()-86400*30);
       setCookie('passwort','',time()-86400*30);
       setCookie('autologin','',time()-86400*30);
       $_SESSION['uid']  = "";
       $_SESSION['passwort'] = "";
       $_SESSION['login']  = "";
       header ("location: ".$domain);
       die();   
      }
     }
    }

    // Logout
    if ($_GET['logout'] == 'true') {
        setCookie('uid','',time()-86400*30);
        setCookie('passwort','',time()-86400*30);
        setCookie('autologin','',time()-86400*30);
        $_SESSION['uid']        = "";
        $_SESSION['passwort']            = "";
        $_SESSION['login']        = "";
        header ("location: ".$domain);
        die();
    }
    if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort'])){
    db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." WHERE uid = ".$_SESSION['uid']." AND passwort = '".$_SESSION['passwort']."' LIMIT 1");
    }
    ?>

  2. #2
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Das Problem kann mEn eigentlich nur sein wenn man in der functions.lib die Domain ohne www. einträgt.

    look nämlich hier:
    PHP-Code:
    header ("location: ".$domain); 
    Vorher hat er dir Session id und alles sone späße gegeben und dann leitet er dich von www. -> ohne www. um.

  3. #3
    Erfahrener Benutzer Avatar von FLash
    Registriert seit
    10.01.2008
    Beiträge
    122
    Jo du hast recht.
    Nur bin ich da immer ohne www draufgegangen und hab jetzt gesehen der leitet mich tatsächlich zu www weiter..
    dann ist es ja eigentlich gar kein problem.
    Viellen Herzlichen Dank

  4. #4
    Erfahrener Benutzer
    Registriert seit
    11.02.2010
    Beiträge
    192
    Wenn du das jetzt änderst zu http://klickapig.de haben die leute wo auf http://www.klickapig.de das selbe probleme. Mach am besten über die .htaccess eine weiterleitung zu www. rein, dann sollte keiner mehr dieses problem haben.

    Sollte so funktionieren:
    Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^klickapig.de$ [NC]
    RewriteRule ^(.*) http://www.klickapig.de/$1 [R=301]
    und halt in der functions.lib http://www.klickapig.de eintragen.

  5. #5
    Erfahrener Benutzer Avatar von FLash
    Registriert seit
    10.01.2008
    Beiträge
    122
    danke, hab das jetzt eingebaut, funktioniert auch

  6. #6
    Erfahrener Benutzer
    Registriert seit
    20.06.2007
    Beiträge
    1.905
    PHP-Code:
    <?PHP
      
    if ( substr $_SERVER['SERVER_NAME'], 0) != 'www.' )
      {
        
    header 'location: http://www.' $_SERVER['SERVER_NAME'] );
        exit ();
      }
    ?>

Ähnliche Themen

  1. Login/Logout Problem
    Von Waldiwen im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 12.01.2009, 21:49
  2. Login - Logout Problem nach Serverumzug
    Von Klammgate im Forum [HD] Programmieren
    Antworten: 4
    Letzter Beitrag: 28.06.2008, 20:48
  3. Schon wieder ein Problem Login, logout
    Von Thor82 im Forum Support zum VMSone
    Antworten: 1
    Letzter Beitrag: 05.04.2008, 21:32
  4. Probleme Beim Login/logout
    Von LOSESEGEN im Forum [HD] Programmieren
    Antworten: 6
    Letzter Beitrag: 19.02.2007, 19:23
  5. Probleme Beim Login/logout
    Von LOSESEGEN im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 19.02.2007, 19:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •