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)) ? 0 : $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)) ? 1 : 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 . ": </td><td><input type=\"text\" name=\"uname\" size=\"30\" maxlength=\"25\" value=\"" . ((isset($oldvals['uname'])) ? $oldvals['uname'] : "") . "\"></td></tr>\n"
. "<tr><td>" . _PASSWORD . ": </td><td><input type=\"password\" name=\"pass\" size=\"30\" maxlength=\"20\"></td></tr>\n"
// ."<tr><td> </td><td><input type=\"checkbox\" value=\"1\" name=\"rememberme\" ".((empty($oldvals['rememberme'])) ? "" : "checked")."> "._REMEMBERLOGIN."</td></tr>\n"
. "<tr><td> </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($uname, 0, 25));
$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($uname, vkpBadUserNames)) {
$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'] < 0 && empty($stop)) {
$stop = 7;
} else if ($dbdata['user_stat'] == 2 && 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_USER, 0);
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.$tfilename, 0644);
/*
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.
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.
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
:)
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:
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:
(https://forum.pragmamx.org/proxy.php?request=http%3A%2F%2Fwebfan.de%2Ftemp_weekly%2Fwebfan.subdomain.cookies.loginproblem.jpg&hash=1dbe291d62dc9f4ee1abb852c3262ddeb8e9ae33)
:'(
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: