session/start.php
defbfa55
 <?php
 /*
 
   Session-Start-Script wird vom dispatcher eingebunden
 
 */
 
 require_once('session/checkuser.php');
 require_once('inc/error.php');
 require_once('inc/debug.php');
 
fb92f399
 require_once('inc/base.php');
 
defbfa55
 if (!session_start())
fb92f399
 {
         logger("session/start.php", "session", "Die session konnte nicht gestartet werden!");
defbfa55
         system_failure('Die Sitzung konnte nicht gestartet werden, bitte benachrichtigen Sie den Administrator!');
fb92f399
 }
defbfa55
 
9098cfc5
 DEBUG("<pre>POST-DATA: ".htmlspecialchars(print_r($_POST, true))."\nSESSION_DATA: ".htmlspecialchars(print_r($_SESSION, true))."</pre>");
defbfa55
 
 if (isset($_POST['username']) && isset($_POST['password']))
 {
   $role = find_role($_POST['username'], $_POST['password']);
   if ($role === NULL)
   {
     $_SESSION['role'] = ROLE_ANONYMOUS;
c8258251
     logger("session/start.php", "login", "wrong user data (username: »{$_POST['username']}«)");
defbfa55
     login_screen('Ihre Anmeldung konnte nicht durchgeführt werden. Vermutlich haben Sie falsche Zugangsdaten eingegeben.');
   }
   else
   {
     session_regenerate_id();
     $_SESSION['role'] = $role;
 
     switch ($role)
     {
     case ROLE_SYSTEMUSER:
       $info = get_user_info($_POST['username']);
       $_SESSION['userinfo'] = $info;
fb92f399
       logger("session/start.php", "login", "logged in user »{$info['username']}«");
defbfa55
       break;
     case ROLE_CUSTOMER:
       $info = get_customer_info($_POST['username']);
       $_SESSION['customerinfo'] = $info;
fb92f399
       logger("session/start.php", "login", "logged in customer no »{$info['customerno']}«");
defbfa55
       break;
     }
   }
   unset($_POST['username']);
   unset($_POST['password']);
 }
 
 elseif (isset($_SESSION['role']))
 {
   /* User ist eingeloggt (aber vielleicht als ROLE_ANONYMOUS!) */
 }
 
 else
 {
   $_SESSION['role'] = ROLE_ANONYMOUS;
 }
 // Wenn wir hier sind, ist der Benutzer eingeloggt. Möglicherweise nur als ANONYMOUS
 
 ?>