[gelöst] WebfAN 1.9 BETA - based on pragmaMx 0.1.9 funktioniet nicht nach Serverupdate

Begonnen von Webfan, 11 Januar 2012, 14:30:59

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Webfan

Hallo auf www.webfan.de habe ich ein hochmodifiziertes pragmamx 0.1.9 laufen.

Kurz gesagt Problem ist folgendes:
- Es gibt ein modifiziertes Login, d.h. alle .webfan Logins loggen einen auf *.webfan.de auf der Subdomain ein.
- Es wurde heute ein Serverupdate nach PHP Version 5.3.3-7+squeeze3 vollzogen.

Problem: Seit dem funktionieren zwar noch die Logins auf allen Seiten, aber wen ich eingeloggt bin und eine andere Seite klicke, bin ich wieder ausgeloggt.
Relevante Datei ist die mx_basconfig.ph (unter anderem):
<?php
/**
 * pragmaMx  Content Management System
 * Copyright (c) 2007 pragmaMx Dev Team - http://pragmaMx.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * $Source: /home/www/dps3311/home/cvsroot/pragmamx/pragmamx_01/includes/mx_baseconfig.php,v $
 * $Revision: 1.14 $
 * $Author: tora60 $
 * $Date: 2007/02/12 01:21:58 $
 */

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

/**
 * diese Zeile zur Modulentwicklung einkommentieren oder den Debug-Mode
 * einschalten, gleiches Resultat
 */
// error_reporting(E_ALL);
/**
 * Session-Konfiguration
 * DIESE WERTE BITTE NUR VERAENDERN, WENN SIE WISSEN WAS SIE TUN !!
 * Halten Sie vorher unbedingt Rücksprache mit dem Support-Team.
 * http://www.pragmamx.de/
 * weitere Informationen auch:
 * http://www.dclp-faq.de/ch/ch-version4_session.html
 * http://www.php.net/manual/de/ref.session.php
 */

/**
 * Folgendes wird vom System generiert, kann aber bei Bedarf frei geändert
 * werden verschiedene Sicherheitsfunktionen werden dadurch aber abgeschwaecht !
 * diese Optionen sind nützlich, wenn mehrere mx-Portale auf einer Domain laufen
 */
 
if(!defined('MX_SESSION_VARPREFIX'))define('MX_SESSION_VARPREFIX''WebfanSessionID_');
 
define('MX_SESSION_NAME'          MX_SESSION_VARPREFIX.md5('mxWebfanSessid'.date("m")) );


 
define('MX_SAFECOOKIE_NAME_ADMIN' 'Chiefmaster01Info_'md5('mxChiefmaster01Info'.date("m")) );

/*
if(isset($_COOKIE[MX_SAFECOOKIE_NAME_ADMIN]) )
{
if(MX_IS_ADMIN && !isset($_SERVER['HTTPS']))die('mx_baseconfig.php: Protokoll Fehler.');

}
*/

 
define('MX_SAFECOOKIE_NAME_USER'  'WebfanUser_'md5('mxWebfanUser'.date("m")));
if(
preg_match("/outshop.de/",$_SERVER['SERVER_NAME']) && !defined(MX_COOKIE_DOMAIN) ) define('MX_COOKIE_DOMAIN''.outshop.de');

$t_servernames explode('.'$_SERVER['SERVER_NAME']);
$t_servernames array_reverse($t_servernames);

//if(!preg_match("/webfan/", $_SERVER['SERVER_NAME']))
if( $t_servernames[1] !='webfan' )
{
  if(!
defined(MX_COOKIE_DOMAIN)) define('MX_COOKIE_DOMAIN''.'.$_SERVER['SERVER_NAME']);
}else{
  if(!
defined(MX_COOKIE_DOMAIN)) define('MX_COOKIE_DOMAIN''.webfan.de');
}



//if(!defined(MX_COOKIE_DOMAIN)) define('MX_COOKIE_DOMAIN',  $_SERVER['SERVER_NAME']);
define('MX_COOKIE_PATH'           '/');
 
define('MX_SESSION_DBTABLE'       $user_prefix.'_sys_session');

$vkpInactiveMins = (empty($vkpInactiveMins)) ? (int)$vkpInactiveMins 5# Standard 5 Minuten
define("MX_SETINACTIVE_MINS"$vkpInactiveMins 60);
unset(
$vkpInactiveMins);

$vkpSessLifetime = (isset($vkpSessLifetime)) ? $vkpSessLifetime 30;
define("MX_COOKIE_LIFETIME", (empty($vkpSessLifetime)) ? $vkpSessLifetime 24 60 60);

$vkpSessLifetime = (empty($vkpSessLifetime)) ? 0.25 $vkpSessLifetime;
define("MX_SESSION_LIFETIME"$vkpSessLifetime 24 60 60); # Standard 6 Stunden
unset($vkpSessLifetime);

/**
 * die Sessionlifetime für nicht-User / nicht-Admins in Sekunden
 */
define("MX_SESSION_LIFETIME_NOUSER"'3600');

/**
 * der Session Garbage Collection Wert in %, muss immer grösser als 0 sein!!
 */
define("MX_SESSION_GARBAGE"10);

/**
 * ENDE Session-Konfiguration
 */

/**
 * change this to receive email on each config.php change,
 * 1 = send email an hide checkbox, 0 = send if checkbox is checked
 */
$mxSendConfig 0;

/**
 * prefix um die Blöcke vom News-Modul zu identifizieren
 */
define("MX_NEWSBLOCK_PREFIX""block-vkp_News_");

/**
 * PHP-Version ermitteln, nicht verändern !!!!!
 */
define("MX_PHP_VERSION"intval(str_replace("."""PHP_VERSION)));

/**
 * falls keine Standardgruppe angegeben wurde... nicht verändern !!!!!
 */
$default_group = (empty($default_group)) ? intval($default_group);

/**
 * Definition für die Standard Avatar Folder
 */
define("MX_PATH_AVATAR""images/forum/avatar");

/**
 * Definition für die User Avatar Folder
 */
define("MX_PATH_MEMBERAVATAR""images/forum/member_avatar");

/**
 * beim Login Gross/Kleinschreibung im Usernamen beachten
 */
$mxLoginCaseSensiTive true;

/**
 * HTML-Tags, die immer im Request ausgefiltert werden (mxSecureValue)
 */
$mxBadHtmlTags = array('script''frame''iframe''object''meta''applet''link''embed');
//$mxBadHtmlTags = array('script', 'object', 'meta', 'applet', 'link', 'embed');

/**
 * Konfiguration der System-Zeitzone
 * verfuegbar ab php 5.1.x, weitere Info, siehe hier:
 *      http://www.php.net/manual/de/function.date-default-timezone-set.php
 *      http://www.php.net/manual/de/timezones.php
 */
if (function_exists('date_default_timezone_set')) {
    
date_default_timezone_set(@date_default_timezone_get());
}
setlocale(LC_ALL$locale);

/**
 * in Funktion gekapselt, um die Variablen nicht in den globalen scope zu kopieren ;)
 */
function mxdefinepath()
{
    
// versch. Servervariablen prüfen
    // k.A. warum, aber wir hatten da schon Hosts mit slashes drumrum...
    
$_SERVER['HTTP_HOST'] = strtolower(trim((!isset($_SERVER['HTTP_HOST'])) ? getenv('HTTP_HOST') : $_SERVER['HTTP_HOST'], ' /:;.'));
    
$_SERVER['SCRIPT_NAME'] = (!isset($_SERVER['SCRIPT_NAME'])) ? getenv('SCRIPT_NAME') : $_SERVER['SCRIPT_NAME'];
    
$_SERVER['PATH_INFO'] = (!isset($_SERVER['PATH_INFO'])) ? getenv('PATH_INFO') : $_SERVER['PATH_INFO'];
    
$_SERVER['HTTP_USER_AGENT'] = (!isset($_SERVER['HTTP_USER_AGENT'])) ? getenv('HTTP_USER_AGENT') : $_SERVER['HTTP_USER_AGENT'];
    
$_SERVER['REMOTE_ADDR'] = (!isset($_SERVER['REMOTE_ADDR'])) ? getenv('REMOTE_ADDR') : $_SERVER['REMOTE_ADDR'];
    
$_SERVER['REMOTE_HOST'] = (!isset($_SERVER['REMOTE_HOST'])) ? getenv('REMOTE_HOST') : $_SERVER['REMOTE_HOST'];
    
$_SERVER['REMOTE_HOST'] = (empty($_SERVER['REMOTE_HOST'])) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['REMOTE_HOST'];
    
$_SERVER['REQUEST_URI'] = (!isset($_SERVER['REQUEST_URI'])) ? getenv('REQUEST_URI') : $_SERVER['REQUEST_URI'];
    
$_SERVER['HTTP_REFERER'] = (!isset($_SERVER['HTTP_REFERER'])) ? strip_tags(getenv('HTTP_REFERER')) : strip_tags($_SERVER['HTTP_REFERER']);
    
/**
     * REQUEST_URI kann auf manchen Servern nicht verfügbar sein, z.B. IIS
     */
    
if (empty($_SERVER['REQUEST_URI'])) {
        if (isset(
$_POST['name'])) {
            
$_GET['name'] = $_POST['name'];
        }
        if (
count($_GET)) {
            foreach (
$_GET as $key => $value) {
                
$parts[$key] = $key "=" $value;
            }
        }
        
$requri = (isset($parts)) ? $_SERVER['PHP_SELF'] . "?" implode("&"$parts) : $_SERVER['PHP_SELF'];
        
$_SERVER["REQUEST_URI"] = $requri;
    }

    
$server $_SERVER['HTTP_HOST'];
    
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' || strtolower($_SERVER['HTTPS']) == 'on'))? 'https://' 'http://';
    
/**
     * den mx-Root anhand der URL ermitteln
     */
    // REQUEST_URI in Bestandteile zerlegen, wegen evtl. übergebenen URL's das Protokol und den Host mit reinnehmen
    
$arr = @parse_url($proto $server $_SERVER["REQUEST_URI"]);
    
// sicherstellen, dass ein Pfad vorhanden ist
    
$cookiepath = (empty($arr['path'])) ? '/' $arr['path'];
    
// folgendes nur wenn auch ein Pfad vorhanden
    
if ($cookiepath != '/') {
        
// den enthaltenen Pfad in Einzelteile aufsplitten
        
$arr preg_split('#[\\\/]{1,}#'trim($cookiepath'\\/'));
        
// den letzten Teil des Pfades auslesen
        
$file array_pop($arr);
        
// ermitteln, ob der letzte Teil ein Dateiname ist
        
if (!preg_match('#([^/]\.php[345]*)|([^/]\.html?)$#i'$file)) {
            
// wenn kein Dateiname, den letzten Teil des Pfades wieder an das Array anfügen (wird von array_pop entfernt)
            
array_push($arr$file);
        }
        
// den Pfad, mit slashes wieder zusammensetzen
        
$cookiepath '/' implode('/'$arr) . '/';
        
// evtl. doppelt vorhandene slashes vereinzeln, es bleibt auf jeden Fall am Anfang und Ende ein slash stehen
        
$cookiepath str_replace('//''/'$cookiepath);
        
/*
        // Problem bei falscher Gross-Kleinschreibung des Pfades versuchen zu fixen
        if (!empty($_SERVER['SCRIPT_FILENAME'])) {
            if (preg_match('#' . preg_quote($cookiepath, '#') . '#i', $_SERVER['SCRIPT_FILENAME'], $matches)) {
                if ($cookiepath !== $matches[0]) {
                    $cookiepath = $matches[0];
                    $_SERVER["REQUEST_URI"] = preg_replace('#' . preg_quote($cookiepath, '#') . '#i', $cookiepath, $_SERVER["REQUEST_URI"]);
                    $_SERVER["SCRIPT_NAME"] = preg_replace('#' . preg_quote($cookiepath, '#') . '#i', $cookiepath, $_SERVER["SCRIPT_NAME"]);
                    $_SERVER["PHP_SELF"] = preg_replace('#' . preg_quote($cookiepath, '#') . '#i', $cookiepath, $_SERVER["PHP_SELF"]);
                }
            }
        }
         */
    
}

    if (!
defined("MX_COOKIE_PATH")) define("MX_COOKIE_PATH" $cookiepath);
    if (!
defined("MX_COOKIE_DOMAIN")) define("MX_COOKIE_DOMAIN"preg_replace('#^www\.#i'''$server));
    if (!
defined("MX_BASE_URI")) define("MX_BASE_URI" '/' trim($cookiepath' .;/:')); // Pfad, ausgehend vom document-root
    
if (!defined("MX_BASE_URL")) define("MX_BASE_URL" $proto $server $cookiepath); // z.B. für URL in mails
    
if (!defined("MX_HOME_URL")) define("MX_HOME_URL" trim(MX_BASE_URL' .;/:')); // entspricht $nukeurl
    
if (!defined("MX_ROOT_DIR")) define("MX_ROOT_DIR" MX_BASE_URI); // komp. mit 2.2
}

/**
 * Beschreibung
 */
function mxIniGet($cfgname)
{
    if (@
is_callable('ini_get')) {
        return @
ini_get($cfgname);
    } else {
        return @
get_cfg_var($cfgname);
    }
}

/**
 * hier kann ein anderer OutputHandler zugefuegt werden, als Alternative zu ob_gzhandler
 */
function mxGetOutputHandler()
{
    global 
$mxUseGzipCompression;
    if (!empty(
$mxUseGzipCompression)) {
        
$mxUseGzipCompression 0;
        if ((
extension_loaded("zlib")) && (!mxIniGet("zlib.output_compression")) && (mxIniGet('output_handler') != 'ob_gzhandler') && (!headers_sent())) {
            if (@
strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
                
$mxUseGzipCompression 1;
                return 
'ob_gzhandler';
            }
        }
    }
    return 
"";
}

/**
 * vorige Funktion ausführen :)
 */
mxdefinepath();

/**
 * versch. Konstanten
 */
if (!preg_match('#^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$#'$_SERVER['REMOTE_ADDR'])) {
    
$_SERVER['REMOTE_ADDR'] = '0.0.0.0';
}
define('MX_REMOTE_ADDR'$_SERVER['REMOTE_ADDR']);
define('MX_REMOTE_HOST'strip_tags($_SERVER['REMOTE_HOST']));
define('MX_USER_AGENT'strip_tags($_SERVER['HTTP_USER_AGENT']));
define('MX_CRYPTEDDIR''includes');

/**
 * zur Kompatibilitaet mit phpNuke Modulen, die Versionsnummer auf 5.6 setzen, überschreibt evtl die config.php
 */
$Version_Num '5.6';

/**
 * Testausgaben:
 */
return;

print (
'<pre>
MX_BASE_URI      = ' 
MX_BASE_URI '
MX_BASE_URL      = ' 
MX_BASE_URL '
MX_COOKIE_PATH   = ' 
MX_COOKIE_PATH '
MX_COOKIE_DOMAIN = ' 
MX_COOKIE_DOMAIN '
MX_HOME_URL      = ' 
MX_HOME_URL '
'
);
print_r($_SERVER);
print(
'</pre>');


Ich bin derzeit ziemlich nervös weil das Login auf den verschiedenen Seiten ein nicht unwesehntlicher Bestabdteil meines Geschäftsmodelles ist.
Ich bitte um Hilfe, obwohl ich weiß, das mein betroffenes System als PMX veraltet bzw. besser gesagt hochmodifiziert ist.
Aber vielleicht hat ja jemand eine  Hinweis dem ich Nachgehen kann, bitte  :police:

Hier noch eine vielleicht relevante Datei (modules/Your_Account/loginout.php):
<?php
/**
 * pragmaMx  Content Management System
 * Copyright (c) 2005 pragmaMx Dev Team - http://pragmaMx.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * $Source: /home/www/dps3311/home/cvsroot/pragmamx/html/modules/Your_Account/Attic/loginout.php,v $
 * $Revision: 1.3.4.4 $
 * $Author: tora60 $
 * $Date: 2006/11/05 14:49:07 $
 */

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
if (!
defined("mxYALoaded")) die ("You can't access this file directly...");

/**
 */
function loginscreen()
{
    
$oldvals = (is_array(mxSessionGetVar("formvalues"))) ? mxSessionGetVar("formvalues") : array();
    
$errmsg = (empty($_GET['stop'])) ? "" "<font class=\"title\"><b>" constant("_YA_LOGINERR_" $_GET['stop']) . "</b></font>\n<br><br><br>\n";
    
mxSessionDelVar("formvalues");
    include(
"header.php");
    
title(_USERREGLOGIN);
    
userNavigation("login");
    
OpenTable();
    echo 
"" $errmsg "\n<form action=\"modules.php?name=Your_Account\" method=\"post\" name=\"userlogin\">\n"
     
"<b>" _USERLOGIN "</b><br><br>\n"
     
"" _COOKIEWARNING "<br><br>"
     
"<table border=\"0\">\n"
     
"<tr><td>" _NICKNAME ":&nbsp;&nbsp;</td><td><input type=\"text\" name=\"uname\" size=\"30\" maxlength=\"25\" value=\"" . ((isset($oldvals['uname'])) ? $oldvals['uname'] : "") . "\"></td></tr>\n"
     
"<tr><td>" _PASSWORD ":&nbsp;&nbsp;</td><td><input type=\"password\" name=\"pass\" size=\"30\" maxlength=\"20\"></td></tr>\n"
    
// ."<tr><td>&nbsp;</td><td><input type=\"checkbox\" value=\"1\" name=\"rememberme\" ".((empty($oldvals['rememberme'])) ? "" : "checked").">&nbsp;"._REMEMBERLOGIN."</td></tr>\n"
    
"<tr><td>&nbsp;</td><td><input type=\"submit\" value=\"" _LOGIN "\"></td></tr>\n"
     
"</table>\n"
     
mxGetUserLoginCheckField()
     . 
"</form>\n";
    echo 
"<script language='JavaScript' type='text/javascript'>\n<!--\ndocument.userlogin.uname.focus();\n//-->\n</script>";
    
CloseTable();
    include(
"footer.php");
}

/**
 */
function douserlogin($pvs$nexturl "http://account.webfan.de")
{
    global 
$user_prefix$prefix;
    
###
    
$locklimit 120;

    
$ltime mxSessionGetVar("ucountbadlogin_lasttime");
    if(
             ( 
$ltime != '' && $ltime time() - $locklimit && mxSessionGetVar("ucountbadlogin") > 3)
          || (  
mxSessionGetVar("ucountbadlogin_LOCKED") == 'TRUE'   )
      )
     {

        
mxSessionSetVar("ucountbadlogin_LOCKED""TRUE");

        
$nexturl 'http://www.webfan.de/modules.php?name=Your_Account&op=pass_lost&lost=' $uname;

           if( !
preg_match("/MSIE/"$_SERVER['HTTP_USER_AGENT'] ) )
           {
           while (
ob_get_level()) {
                                   
ob_end_clean();
                                  }
            }


                  
$limit_berechnen time() + ($locklimit 5) - ( time() - $ltime);

                  
$metarefresh_time = ($locklimit 5) - ( time() - $ltime);

                  
$countdowntime $limit_berechnen;

                  
$c_jahr date('Y'$countdowntime);
                  
$c_monat date('n'$countdowntime);
                  
$c_tag date('j'$countdowntime);
                  
$c_stunde date('G'$countdowntime);
                  
$c_minute date('i'$countdowntime);
                  
$c_sekunde date('s'$countdowntime);

         
//  require('header.php');

           
echo '
           <font style="color:#DC143C;font-size:14px;">
           Login Fehler. Benutzername oder Passwort zu oft fehlerhaft eingegeben.
           </font>
           <br>
           <b>Zu viele Fehlversuche, bitte zwei Minuten warten!</b> Weiterleitung in<br> <iframe height="90" name="countdown" width="550" marginwidth="0" marginheight="0" scrolling="auto"
                     frameborder="0" src="http://www.webfan.de/countdown_hours.php?jahr='
.$c_jahr.'&monat='.$c_monat.'&tag='.$c_tag.'&stunde='.$c_stunde.'&minute='.$c_minute.'&sekunde='.$c_sekunde.'"> Zeitanzeige nicht möglich (keine Fames) </iframe>
                     <br>'
;

            echo 
"<META http-equiv=\"Refresh\" content=\"".$metarefresh_time.";URL=".strip_tags($nexturl)."\">";

           echo 
'<a href="'.strip_tags($nexturl).'">Zu viele Fehlversuche, bitte zwei Minuten warten und erneut versuchen. Wenn Du nach zwei Minuten nich weitergeleitet wirst bitte hier klicken...</a><br><br><br>
           Bitte habe Verständnis für diese Sicherheitsmaßnahme, Sie dient dem Schutz Deiner Daten.<br>
           Bei Problemen wende Dich bitte an <a href="mailto:support@webfan.de">support@webfan.de</a><br>
           <br>
           Du wirst gleich auf die Seite geleitet auf der Du ein neues Passwort anfordern kannst, oder auf Login klicken und nochmal versuchen. <b>Login für 2 Minuten gesperrt. Nach dem Besuch der Passwort Recovery Seite nach einer Wartezeit von zwei Minuten kann ein erneutes Login probiert werden.</b>
           <br>'
;

          
// require('footer.php');

           
die();
     }
    
###


    
if(isset($_SESSION['_LOGINNEXTPAGE_']) )$nexturl $_SESSION['_LOGINNEXTPAGE_'];

    if (
MX_IS_USER) {
        
session_write_close();
      
// header("Location: modules.php?name=Your_Account");
        
mxSessionSetVar("ucountbadlogin"0);

        if(isset(
$_SESSION['_LOGINNEXTPAGE_']) ||($_POST['redirectmod']=='Userblog' && isset($_POST['subdomain']) ))
          {

           while (
ob_get_level()) {
                                   
ob_end_clean();
                                  }

           
/*  header("Location: ".$nexturl); */
            
echo "<META http-equiv=\"Refresh\" content=\"0;URL=".strip_tags($nexturl)."/?op=account\">";

           die(
'<a href="'.strip_tags($nexturl).'/?op=account">Weiter zur Homepage...</a>');
          }


       
header("Location: ".$nexturl);
        die();
    }
    
// mxDebugFuncvars($pvs);
    
extract($pvs);
    
$uname trim(substr($uname025));
    
$uloginreqcheck mxSessionGetVar("uloginreqcheck");
    
mxSessionDelVar("uloginreqcheck");
    
mxSessionSetVar("formvalues"$pvs); // Werte zwischenspeichern, falls Fehler im Login
    
$stop 0;
    
$check = (empty ($check)) ? mt_rand() : $check// sicherstellen, dass $check initialisiert ist
    
$check_cookie = (empty ($check_cookie)) ? mt_rand() : $check_cookie// sicherstellen, dass $cookie_check initialisiert ist
    
if ($check_cookie != MD5(session_id())) {
        
$stop 1;
    } else if (
$check != MD5($uloginreqcheck)) {
        
$stop 2;
        
mxSecureLog("SecLog""Bad Userlogin - Account: " $uname " (no session-check-id)");
    } else if (empty (
$uname) || empty ($pass)) {
        
$stop 3;
    } else if (
eregi($unamevkpBadUserNames)) {
        
$stop 3// 2.mal stop 3, sonst Fehlermeldung wenn $uname leer
    
}
    if (empty (
$stop)) {
        
$check_pass md5($pass);
        
$result sql_query("SELECT * FROM ${user_prefix}_users WHERE uname='" mxAddSlashesForSQL($uname) . "'");
        
$dbdata sql_fetch_array($result); ## crypt($pass,substr($pass,0,2));
        
if (empty ($dbdata['uname'])) {
            
$stop 4;
        } else if ((
$dbdata['uname'] != $uname)) {
            if (
$GLOBALS['mxLoginCaseSensiTive']) {
                
$stop 4;
            } else {
                if (
strtolower($dbdata['uname']) != strtolower($uname)) {
                    
$stop 4;
                }
            }
        }
        if (
$dbdata['pass'] != $check_pass && empty($stop)) {
            
$stop 5;
        } else if (empty (
$dbdata['user_stat']) && empty($stop)) {
            
$stop 6;
        } else if (
$dbdata['user_stat'] < && empty($stop)) {
            
$stop 7;
        } else if (
$dbdata['user_stat'] == && empty($stop)) {
            
$stop 9;
        } else if (
mxSessionGetVar("user_uid") && mxSessionGetVar("user_uname") && empty($stop)) {
            
// / prüfen, ob die evtl. vorhandenen Sessiondaten mit den Logindaten übereinstimmen
            // / ähnlich dann auch in der Funktion mxIsUser()
            
if (mxSessionGetVar("user_uid") != $dbdata['uid'] || mxSessionGetVar("user_uname") != $dbdata['uname'] && empty($stop)) {
                
mxSessionDestroy();
                
$stop 10;
            }
        }
    }
    if (!empty (
$stop)) {
        
mxSessionSetVar("ucountbadlogin_lasttime"time() );
        
mxSessionSetVar("ucountbadlogin", (int) mxSessionGetVar("ucountbadlogin") + 1);
        if (
mxSessionGetVar("ucountbadlogin") >= 5) {
            
mxSecureLog("SecLog""Bad Userlogin ($stop)- Account: " $uname);
            
mxSessionSetVar("ucountbadlogin"3);

            
$nexturl "http://www.webfan.de/modules.php?name=Your_Account&op=pass_lost&lost=" $uname;
        } else {
            
$nexturl "modules.php?name=Your_Account&stop=" $stop "&bad=" mxSessionGetVar("ucountbadlogin");
        }
    } else {
        
mxSetUserSession($dbdata['uid'], $dbdata['uname'], $dbdata['pass'], $dbdata['storynum'], $dbdata['umode'], $dbdata['uorder'], $dbdata['thold'], $dbdata['noscore'], $dbdata['ublockon'], $dbdata['theme'], $dbdata['commentmax']);
        
        
        
        
mxSessionDelVar("formvalues");
        
mxSessionDelVar("ucountbadlogin");
        
mxSessionDelVar("newusercheck"); // falls noch von Accounterstellung vorhanden
        
mxSessionSetVar("lasttime"0); // Zurücksetzen, damit Online() ausgeführt wird
        
mxSessionSetVar('user_uid'intval($dbdata['uid']));
        
mxSessionSetVar('user_uname'$dbdata['uname']);
        
$_SESSION['Accmenue'] ='an';

        
################ redirect #####################
while (ob_get_level()) {
    
ob_end_clean();
}

 if(
$_GET['redirectmod']=='UserpointsAcc')
 
header("Location: modules.php?name=UserpointsAcc");

 if(
$_GET['redirectmod']=='Software')
 
header("Location: http://software.webfan.de/modules.php?name=Software");

  if(isset(
$_SESSION['_LOGINNEXTPAGE_']) || ($_POST['redirectmod']=='Userblog' && isset($_POST['subdomain']) ))
  {
    echo 
"<META http-equiv=\"Refresh\" content=\"0;URL=".strip_tags($nexturl)."/?op=account\">";

  die(
'<a href="'.strip_tags($nexturl).'/?op=account">Weiter zur Homepage...</a>');
   }



  if(isset(
$_POST['redirectmod']) && $_POST['redirectmod']=='FRONTEND_2' && isset($_POST['subdomain'])
  && 
array_key_exists($_POST['subdomain'],  $reqModulArry)
   )
  {
    echo 
"<META http-equiv=\"Refresh\" content=\"0;URL=http://".strip_tags($_POST['subdomain']).".webfan.de/\">";

  die(
'<a href="http://'.strip_tags($_POST['subdomain']).'.webfan.de/?op=account">Weiter zum Servicepoint...</a>');
   }
    
############### eof redirect ###########
    
}
    
session_write_close();


    if( 
preg_match("/Your_Account/"$nexturl)
    || 
preg_match("/Userinfo/"$nexturl)
    )
$nexturl 'http://account.webfan.de';


    
header("Location: " $nexturl);



    die();
}

/**
 */
function logout($delete false)
{
    global 
$prefix$user_prefix;
    if (
MX_IS_USER) {
        
$ip MX_REMOTE_ADDR;
        
$cookie mxGetUserSession();
        
$qry "UPDATE ${user_prefix}_users set user_lastvisit=" time() . ", user_lastip='" $ip "', user_lastmod='logout' where uname='" mxAddSlashesForSQL($cookie[1]) . "'";
        
$result sql_query($qry);
        if (
MX_IS_ADMIN) {
            
mxSessionSetVar("lasttime"0); // Zurücksetzen, damit Online ausgeführt wird
            
mxSessionDelVar("user");
            
mxSessionSafeCookie(MX_SAFECOOKIE_NAME_USER0);
            
mxSetNukeCookie("user");
            
session_write_close();
        } else {
            
mxSessionDestroy();
        }
    }
    if (
$delete) {
        
Header("Location: modules.php?name=Your_Account&op=deletefinisch");
    } else {
        
$nextpage = (isset($_REQUEST['redirect'])) ? $_REQUEST['redirect'] : "modules.php?name=Your_Account&op=logoutfin&logoutUname=".strip_tags($cookie[1])."";
        
Header("Location: " $nextpage);
    }
}

/**
 */
function logoutfinisch()
{
    include(
"header.php");
  
//  echo "<META http-equiv=\"Refresh\" content=\"4;URL=http://www.webfan.de/\">";
    
OpenTable();
    
########### Onlineliste rewrite cache
    
require('includes/webfan/functions/OL_functions.php');
    
_OL_rewrite_cache();

########### Onlineliste rewrite cache ende
    
$tuname=strip_tags($_GET['logoutUname']);

    
$rediretcUrl '/';
    
$tt_text = array();
    
$tt_text[]= 'Danke fuer Deinen Besuch! Tschuess '.$tuname.' bis zum naechsten Mal!';
    
$tt_text[]= 'Auf Wiedersehen '.$tuname.' und einen schoenen Tag noch!';
    
$tt_text[]= 'Auf Wiedersehen '.$tuname.', bis zum naechsten Mal bei Webfan - die Internetseite.';
    
$tt_text[]= 'Tschuess '.$tuname.'! Vielen Dank fuer Deinen Besuch! Bis zum naechsten Mal!';
    
$tt_text[]= 'Machs gut '.$tuname.'! Wir freuen uns auf Deinen naechsten Besuch! Bis zum naechsten Mal!';
    
$tt_text[]= 'Auf Wiedersehen '.$tuname.'! Bis zum naechsten Mal bei Webfan.de!';
    
$tt_text[]= 'Tschau '.$tuname.'! Bis zum naechsten Mal und machs gut!';

    function 
randWiedersehenText($tt_text)
     {
      
$z rand(0,count($tt_text)-1);
      return 
$tt_text[$z];
     }

    if(!
defined('ASP_PATH_WEBFAN_ROOT'))
            
define('ASP_PATH_WEBFAN_ROOT''../../www_redirect_webfan/');

    
$ttempdir ASP_PATH_WEBFAN_ROOT.'cache-public/';

    
$tfilename md5(  uniqid('mp3_aufWiedersehen_'.session_id().'-'.time().md5(rand(1000000,99999999)) , TRUE)  ).'.mp3';

    
$ttttext randWiedersehenText($tt_text);

    
file_put_contents($ttempdir.$tfilename,
    
file_get_contents("http://translate.google.com/translate_tts?tl=de&q=".urlencode(htmlentities($ttttext)).""));

    
chmod($ttempdir.$tfilename0644);

/*
      echo '<embed src="http://webfan.de/cache-public/'.$tfilename.'" border="0" height="0" width="0">';
*/
echo '<embed name="Welcome" src="http://webfan.de/cache-public/'.$tfilename.'" border="0" width="1" height="1" autostart="true" Delay="0" volume="35" loop="false" controls="smallconsole">';

    echo 
"<center><br><br><br><font class=\"option\"><b>" _YOUARELOGGEDOUT "</b></font>";
    echo 
"<br><br><font class=\"content\"><b><a href=\"".$rediretcUrl."\">" _HOME "</a></b></font><br><br><br></center>";


                  
$metarefresh_time 20;

                  
$limit_berechnen time() + $metarefresh_time;

                  
$countdowntime $limit_berechnen;

                  
$c_jahr date('Y'$countdowntime);
                  
$c_monat date('n'$countdowntime);
                  
$c_tag date('j'$countdowntime);
                  
$c_stunde date('G'$countdowntime);
                  
$c_minute date('i'$countdowntime);
                  
$c_sekunde date('s'$countdowntime);

         
//  require('header.php');

    
echo '<center>';
    
$tuname2 ' '.$tuname;
    echo 
'<b>Tschüß'.$tuname2.'!</b><br>
          Wir danken für Ihren Besuch und heißen Sie jederzeit wieder herzlich Willkommen!
          Wir freuen uns auf Ihren nächsten Besuch!<br>
          Auf Wiedersehen bis zum nächsten Mal.<br>
          Webfan - die Internetseite | Webfan.de<br>
          <br>
          '
;

           echo 
'
           <font style="color:#DC143C;font-size:14px;">
           Sie werden gleich weitergeleitet...
           </font>
           <br>
           Weiterleitung in<br> <iframe height="90" name="countdown" width="550" marginwidth="0" marginheight="0" scrolling="auto"
                     frameborder="0" src="http://www.webfan.de/countdown_hours.php?jahr='
.$c_jahr.'&monat='.$c_monat.'&tag='.$c_tag.'&stunde='.$c_stunde.'&minute='.$c_minute.'&sekunde='.$c_sekunde.'"> Zeitanzeige nicht möglich (keine Fames) </iframe>
                     <br>'
;

       echo 
"<meta http-equiv=\"Refresh\" content=\"".$metarefresh_time.";URL=".strip_tags($rediretcUrl)."\">";


    
CloseTable();
    include(
"footer.php");


}

?>


Dem Servertechniker habe ich das Problem bereits geschildert.
Wenn ich mal ein paar €s über habe würde ich mich auch gerne für einen Hinweis der zur Lösung führt erkenntlich zeigen.
Es muß eigentlcih "nur" an irgendeiner "Pisseligkeit" liegen...  :red:
Wer als erster einen Beitrag postet der zur Lösung führt erhält schonmal als Dankeschön einen 5€ Gtuschein: http://domainundhomepagespeicher.de/shop/5-einkaufsgutschein.201.html

Viele Grüße
Till
www.webfan.de

P.S.: Noch ein sachdienlicher Hinweis: Auf den TL-Domains (nicht Webfan) bleibt man wie ich es jetzt sehe eingeloggt.



lemming

ho,
meine erste idee war, dass du vllt. bei angabe der domain den "." vorne vergessen hast um auch die subdomains zugänglich zu machen. aber das sieht soweit ja gut aus. weiter ist mir spontan nichts mehr eingefallen ausser dir noch "Firecookie" (firefox addon und erweiterung für firebug) zu empfehlen.

damit kannst du die cookies mal analysieren und anschliessend ausschliessen, dass dein problem mit veränderten cookies zu tun hat. expire time etc.
greetz,
Jörg

------------------------
Mitgliedersuche v.0.3 *new*

Webfan

Hi lemming,
danke für Deine Antwort  :)
Für heute hab ich den Kaffe auf und teste heute gar nichts mehr  :puzzled:

Zitateiter ist mir spontan nichts mehr eingefallen ausser dir noch "Firecookie" (firefox addon und erweiterung für firebug) zu empfehlen.

damit kannst du die cookies mal analysieren und anschliessend ausschliessen, dass dein problem mit veränderten cookies zu tun hat. expire time
Das werd ich mir morgen mal anschauen, danke!

Viele Grüße
:)

Webfan

Es scheint irgendwas mit den Cookies zu tun haben. Alle Cookies liegen richtig auf .webfan.de außer der PHPSESSID Cookie lag auf www.webfan.de. Hab jetzt den PHPSESSID Cookie auch nach .webfan.de kopiert aber ohne Erfolg.
Kann mir noch keinen Reim darauf machen.
:gruebel:

Webfan

Firecookie hab ich mir auch installiert, und damit nochmal - mich bei www.webfan.de eingeloggt und den Session Cookie auf .webfan.de auf den gleichen Wert gesetzt, trotzdem bin ich beim BEsuch der Subdomain ausgeloggt.
Das ist was mir firecookie anzeigt:


:'(

Webfan

Habe jetzt keine "schöne, saubere" Lösung, aber ein funktionierendes Workaround (in der mainfile.php):

   
foreach($_COOKIE as $c => $value)
     { 
       setcookie(strip_tags($c), strip_tags($value), time()+ (3 * 24 * 60 * 60), "/", ".webfan.de");
       setcookie(strip_tags($c), strip_tags($value), time()+ (3 * 24 * 60 * 60), "/", $_SERVER['SERVER_NAME']);
     }


:bye: