Sabine: session-id

Beitrag lesen

Brauche dringend etwas Nachhilfeunterricht.

Auf meinem Portal passiert es sehr oft, das User sich nicht einloggen können. Und sehr oft auch, das man sich ständig neu einloggen muß.
Hier mal meine session-scriptseite:

<?php
 if(!session_is_registered(s_UID)) { session_register(s_UID); }
 if(!session_is_registered(s_UserInfo)) { session_register(s_UserInfo); }

// Check SessionID, set new one if fails
 if (strlen(session_id()) != 32)
 {
     if($GLOBALS['DEBUG']) { echo "False session-id found!<br>"; }
     mt_srand ((double)microtime()*1000000);
        session_id(md5(uniqid(mt_rand())));
 }
 // Automatic fallback, if no Cookies activated

if(SID && ini_get("session.use_trans_sid")=="0") {
  // No Cookies and trans_sid used
  $SIDLink = "?".SID; $SIDAddLink = "&".SID;
 } else { $SIDLink = ""; $SIDAddLink ="";  }

// Get session data
 $s_UID = $HTTP_SESSION_VARS['s_UID'];
 $s_UserInfo = $HTTP_SESSION_VARS['s_UserInfo'];

if(!isset($s_UID) || $s_UID==0)   {
  // Unknown user (No userid found or userid is zero)
  $s_UID = 0;
  unset($s_UserInfo);

} else {
  // Try to get UserInfo available
  if(!is_array($s_UserInfo) || ($s_UserInfo['userid'] <> $s_UID))  {

// No userdata found, so try to get userdata
   $s_UserInfo = GetUserDetails($s_UID);
   if($GLOBALS['DEBUG']) { echo "UID found; Userinfo read from database!<br>"; }
   if($s_UserInfo == false || $s_UserInfo == -1) {
    // User not found / Delete all Informations
    $s_UID = 0;
    unset($s_UserInfo);
   }
  }
 }
 // Global userspecific changes of configuration
 if(is_array($s_UserInfo) && isset($s_UID)) {
  $strLangName = $s_UserInfo['userdeflang'];
  if(!empty($strLangName)) {
   $DEFLANG = $strLangName;
  }
  if($s_UserInfo['userrights'] & 128) {
   // Debug-Admin
   $DEBUG = true;
  }
 }
 // Not used, due to redirect headers
 if($GLOBALS['DEBUG']) {
  echo "Session-ID: ".session_id()."<br>";
  echo "User-ID : ".$s_UID."<br>";
  echo "UserInfo-Type: ".$s_UserInfo."<br>";
 }
?>