autologin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • autologin

    hallo

    ich benutze diesen script:
    http://www.php-resource.de/tutorials/read/38/6/ um mich einzuloggen. Bis jetzt funktioniert alles schön, nur ich will mich auch automatisch einloggen (cookie).
    Wie kann ich das machen über cookies?
    Was muss im cookies stehen, damit ich mich automatisch einloggen kann?


    ich bin noch ein anfänger

  • #2
    Einfach ein Cookie mit irgendeiner Information deiner Wahl absetzen, die Gültigkeitsdauer auf etwa 1 Woche begrenzen. Wenn der user die Seite aufruft, dann prüfst du den Keks, falls vorhanden, durchschalten und somit login-formular überspringen, falls nicht, login-formular anzeigen. Beim ersten Kontakt des Tages ggf. Lebensdauer des Cookies entsprechend verlängern.

    Kommentar


    • #3
      so sieht meine login datei aus:
      PHP-Code:
      <?php

      if ( $_GET['action'] == md5('login') )
      {
          
      $tpl -> addBlockFile('L_BODY''LOGINDATEN''login.tpl');
          
      $tpl->setVariable(array('LOGIN_ACTION' => md5('login_action')));
      }

      // Ab hier werden Daten von Logi.tpl übergeben
      if ( $_GET['action'] == md5('login_action') )
      {
          
      session_start();

          if (isset(
      $_POST['login']))
          {
              
      $userid=check_user($_POST['username'], $_POST['userpass']);
              if (
      $userid!=false)
              {
                  
      login($userid);
                    
      // Wenn User und Password korrekt sind und checkbox activiert ist wird ein cookie gesetzt
                  
      if ( $_POST['autologin'] == on )
                      {
                          
      setcookie('autologin'session_id(), time()1800);
                        }
                  
      header('location: ./index.php');
              }
      // wurde User oder Password nicht gefunden, Info meldung        
      else
              {
              
      $tpl -> addBlockFile('L_BODY''LOGINDATEN''login.tpl');
              
      $tpl->setVariable(array('USERNAME_FALSCH' => 'Du hast einen falschen oder inaktiven Benutzernamen oder ein falsches Passwort eingegeben.',
                                      
      'LOGIN_ACTION' => md5('login_action')));

              }
          }
      }

      ?>
      Der cookie wird nur gesetzt wenn checkbox angeklickt ist. Klapt auch wunderbar.


      und das ist ein teil meiner index.php

      PHP-Code:
      session_start ();
      include(
      './includes/session.php');
      // prüft ob ein benutzer eingeloggt ist

      if ( !logged_in() )
      // wenn NEIN
      {
          
      $tpl -> setVariable(array('LOGIN' => md5('login')));
      }
      // Wenn JA
      else
      {
      $tpl -> setVariable(array('LOGOUT' => md5('logout')));



      Und das ist die session.php

      PHP-Code:
      <?
      function connect()
      {
          $con= mysql_connect('','root','') or die(mysql_error());
           mysql_select_db($dbname,$con) or die(mysql_error());
      }

      function check_user($name, $pass)
      {
          $sql="SELECT UserId
          FROM users
          WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
          LIMIT 1";
          $result= mysql_query($sql) or die(mysql_error());
          if ( mysql_num_rows($result)==1)
          {
              $user=mysql_fetch_assoc($result);
              return $user['UserId'];
          }
          else
              return false;
      }

      function login($userid)
      {
          $sql="UPDATE users
          SET UserSession='".session_id()."'
          WHERE UserId=".$userid;
           mysql_query($sql);
      }

      function logged_in()
      {
          $sql="SELECT UserId
          FROM users
          WHERE UserSession='".session_id()."'
          LIMIT 1";
          $result= mysql_query($sql);
            return ( mysql_num_rows($result)==1);
      }

      function logout()
      {
          $sql="UPDATE users
          SET UserSession=NULL
          WHERE UserSession='".session_id()."'";
           mysql_query($sql);
      }

      connect();
      ?>
      das auslesen von cookie krieg ich einfach nicht hin

      Kommentar


      • #4
        PHP-Code:
        echo '<pre>' print_r($_COOKIE1) . '</pre>'

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar

        Lädt...
        X