PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Weiße Seite beim Login und Logout



Gothicman1
17.11.2009, 10:44
Hallo,

Habe schon gesucht aber die Lösung meines Problems leider nicht gefunden.Ich habe das gzip eingebaut und erst später gemerkt, das man bei Aus und Einloggen eine weiße Seite bekommt.
Habe jetzt in der Funktion.lib den Urzustand wieder hergestellt und das gzip komplett wieder raus genommen. Auch chache Header habe ich wieder drin. Habe die Änderung auch im Footer wieder rückgängig gemacht. An anderen Dateien habe ich nichts verändert.
Leider wird beim Login und bei Logout immer noch eine weiße Seite angezeigt. Wenn man aber wenn die weiße Seite da ist, die Seite nochmal neu aufruft (nicht neu lädt) ist man eingeloggt und umgekehrt. So funktioniert es also, kann aber kein Dauerzustand sein. (beim Ausloggen kommt oben im Browser die Adresszeile http://www.lose-keller.de/?content=/intern/startseite&logout=true. Nehme ich das & logout=true weg erscheint normal die Starseite im Ausgeloggten Zustand). Nach Login muss ich nur den Slash am Ende nach .de weg nehmen und dann die Seite neu laden, dann ist man eingeloggt, nachdem auch eine weiße Seite angezeigt worden ist.
Bräuchte wirklich Hilfe, da ich mit meinem Latein am Ende bin. Hier mal die Lib session.lib, wo ich aber nichts geändert habe.

<?
/*
Datei : session.lib.php
Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
*/
@session_start();

// Wer ist online? Addon
if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort']))
{
db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." WHERE uid = ".$_SESSION['uid']." and passwort = '".$_SESSION['passwort']."'");
}

// Variabeln definieren
if (!isset($_SESSION['login'])) $_SESSION['login'] = "";
if (!isset($_SESSION['werber'])) $_SESSION['werber'] = "0";
if (!isset($_SESSION['uid'])) $_SESSION['uid'] = "0";
if (!isset($_POST['userid'])) $_POST['userid'] = "";
if (!isset($_POST['passwort'])) $_POST['passwort'] = "";
if (!isset($_POST['checkid'])) $_POST['checkid'] = "";
if (!isset($_POST['autologin'])) $_POST['autologin'] = "";
if (!isset($_GET['logout'])) $_GET['logout'] = "";
if (!isset($_GET['ref'])) $_GET['ref'] = "0";

// Den Wartungsmodus prüfen
$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain."/wartung.php");
die();
}

// Guthabenabfrage
$kontodaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
if ($_SESSION['uid'] == 0)
{
$kontodaten2 = "Nicht verfügbar.";
$kontodaten3 = '<center><br>';
}

else
{ $kontodaten3 = '<center><br>';
$kontodaten2 = number_format($kontodaten['kontostand'],2,",",".").' '.$waehrung;
}

// Werber in die Session übertragen

// SecVMS change begin
if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];
// SecVMS change end

// Login
if ($_POST['checkid'] == 'Login' && $_POST['userid'] && $_POST['passwort']) {

// SecVMS change begin
$_POST['userid'] = (int)$_POST['userid'];
// SecVMS change end

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");

if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
// Wenn User noch nicht freigeschaltet!
if ($login_check['status'] == 0) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/kein_zutritt';
}
// Wenn beim User alles O.K. ist!
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."'");
if ($_POST['autologin'] == 'true') {
setCookie('uid',$login_check['uid'],time()+86400*30);
setCookie('passwort',$login_check['passwort'],time()+86400*30);
setCookie('autologin','true',time()+86400*30);
}
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
header ("location: ".$domain);
die();
}
// Wenn User gesperrt wurde!
if ($login_check['status'] == 2) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/user_gesperrt';
}
} else {
$_GET['content'] = '/error/kein_zutritt';
}

} else {
if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
}

// Autologin
if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {

// SecVMS change begin
$_COOKIE['uid'] = (int)$_COOKIE['uid'];
$_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
// SecVMS change end

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."'");
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
}
}
}


// Logout
if ($_GET['logout'] == 'true') {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain);
die();
}
?>

LG Gothicman1

P.s.: Weiß leider nicht wie man die Tag ordentlich hier mit einfügt *sorry*

Parl
17.11.2009, 13:01
Lad dir die session.lib.php mal testweise neu herunter und lad diese dann hoch.

"Wer ist online" und "Guthabenabfrage" gehören da nämlich nicht rein.

Xenon
17.11.2009, 13:22
Functions.lib.php die domain so reinschreiben wie du sie aurfurts mit www dann schriebst die domain auch so rein ...

oder mal F5 drücken dann soltest du auch eingeloggt sein

Jenny
17.11.2009, 15:32
Schau mal in der functions.lib.php

$domain = "http://www.losepirat.de"; // ohne Slash am ende

Gothicman1
18.11.2009, 15:15
Lad dir die session.lib.php mal testweise neu herunter und lad diese dann hoch.

"Wer ist online" und "Guthabenabfrage" gehören da nämlich nicht rein.

Wo finde ich die session.lib. Ich habe das ganz alte VMS und ich glaube das es die nicht mehr zum DL giebt. Ich habe an der session.lib auch nichts verändert nur am footer.lib und der funktion.lib
Die gzip habe ich so installiert wie hier beschrieben: http://www.designerscripte.net/showthread.php?t=5335&page=4&highlight=traffic
Auch wie Jessy schreibt habe ich an der Seiten URL gar nichts geändert, nur die Änderungen dann rückgängig gemacht, welche im obigen Link geändert worden sind.
Sonst wurde an footer, session.lib und funktion.lib nichts geändert. Würde auch Lose zahlen, um das Problem zu beseitigen, da viele User mich mit Anfragen überhäufen.

P.S.: Auch beim F5 drücken wird nur eine weiße Seite geladen. Ich muss die Domain neu aufrufen um eingeloggt zu sein. Bei manchen usern funktioniert das ganze gar nicht

LG Gothicman1

Parl
18.11.2009, 15:21
Bin mir da jetzt zwar nicht sicher, aber die session.lib.php vom VMS 1.2.4 sollte auch funktionieren, sehe da grad keinen Unterschied.

Bin bei Lose-Keller auch angemeldet, einloggen funktioniert jedoch überhauptnicht, auch wenn ich die URL neu aufrufe.

Gothicman1
18.11.2009, 15:31
Bin mir da jetzt zwar nicht sicher, aber die session.lib.php vom VMS 1.2.4 sollte auch funktionieren, sehe da grad keinen Unterschied.

Bin bei Lose-Keller auch angemeldet, einloggen funktioniert jedoch überhauptnicht, auch wenn ich die URL neu aufrufe.

Das ist wohl das Problem bei machen Usern, das der Login gar nicht funktioniert. Wenn es also jemand gibt, der den Fehler findet und behebt, bin ich bereit in Losen zu bezahlen. Preisvorstellung dann bitte per PN, bei erfolgreicher Fehlerbehebung.
Ich werde es jetzt mal mit der session.lib probieren, mal sehen ob es funktioniert.

Habe es mit der neuen Session.lib probiert, die Seite bleibt jetzt zwar erhalten aber ein Login ist gar nicht möglich.

LG Gothicman1

Parl
18.11.2009, 15:45
Ups, sorry, ich hab mal wieder nicht überlegt. *g*

Du nutzt ja für den Login die UID und nicht den Nicknamen...

Daher wird die neue session.lib.php ohne Änderungen wohl nicht funktionieren.

Ich guck mal inwiefern man das abändern muss und schicks dir dann per PN, nen Versuch isses ja trotzdem wert.

Gothicman1
18.11.2009, 15:49
Ups, sorry, ich hab mal wieder nicht überlegt. *g*

Du nutzt ja für den Login die UID und nicht den Nicknamen...

Daher wird die neue session.lib.php ohne Änderungen wohl nicht funktionieren.

Ich guck mal inwiefern man das abändern muss und schicks dir dann per PN, nen Versuch isses ja trotzdem wert.

Okay,

bin für eine Lösung des Problems wirklich sehr sehr dankbar.

LG Gothicman1

didith1207
18.11.2009, 16:46
ich hab noch eine vom sec VMS gefunden versuch mal ;)


<?php
/*
Datei : session.lib.php
Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
*/
@session_start();

// Variabeln definieren
if (!isset($_SESSION['login'])) $_SESSION['login'] = "";
if (!isset($_SESSION['werber'])) $_SESSION['werber'] = "0";
if (!isset($_SESSION['uid'])) $_SESSION['uid'] = "0";
if (!isset($_POST['userid'])) $_POST['userid'] = "";
if (!isset($_POST['passwort'])) $_POST['passwort'] = "";
if (!isset($_POST['checkid'])) $_POST['checkid'] = "";
if (!isset($_POST['autologin'])) $_POST['autologin'] = "";
if (!isset($_GET['logout'])) $_GET['logout'] = "";
if (!isset($_GET['ref'])) $_GET['ref'] = "0";

// Den Wartungsmodus prüfen
$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain."/wartung.php");
die();
}

// Werber in die Session übertragen

// SecVMS change begin
if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];
// SecVMS change end

// Login
if ($_POST['checkid'] == 'Login' && $_POST['userid'] && $_POST['passwort']) {

// SecVMS change begin
$_POST['userid'] = (int)$_POST['userid'];
// SecVMS change end

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");

if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
// Wenn User noch nicht freigeschaltet!
if ($login_check['status'] == 0) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/kein_zutritt';
}
// Wenn beim User alles O.K. ist!
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."'");
if ($_POST['autologin'] == 'true') {
setCookie('uid',$login_check['uid'],time()+86400*30);
setCookie('passwort',$login_check['passwort'],time()+86400*30);
setCookie('autologin','true',time()+86400*30);
}
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
header ("location: ".$domain);
die();
}
// Wenn User gesperrt wurde!
if ($login_check['status'] == 2) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/user_gesperrt';
}
} else {
$_GET['content'] = '/error/kein_zutritt';
}

} else {
if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
}

// Autologin
if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {

// SecVMS change begin
$_COOKIE['uid'] = (int)$_COOKIE['uid'];
$_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
// SecVMS change end

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."'");
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
}
}
}

// Logout
if ($_GET['logout'] == 'true') {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain);
die();
}
// Wer ist online? Addon
if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort']))
{
db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." WHERE uid = ".$_SESSION['uid']." and passwort = '".$_SESSION['passwort']."'");
}
?>

Parl
18.11.2009, 17:11
Ok, Fehler wurde behoben, es lag an der functions.lib.php, dort war das "<?" erst in der 7. Zeile, dadurch kam keine Session zustande. *g*

Gothicman1
18.11.2009, 17:21
Vielen herzlichen Dank an Parl, der das Problem behoben hat.
In der funktion.lib begannen die php Befehle erst in der 7 ten Zeile. Dies hat diesen Fehler verursacht.

LG Gothicman1