Das war leider Murks. Kommt halt davon wenn man versucht das mal eben schnell schnell zu machen.
Also, neuer Versuch ;-)
Die Erweiterung der Tabelle bleibt:
PHP-Code:
ALTER TABLE `vms_kontodaten` ADD `neueagb` TINYINT( 1 ) NOT NULL DEFAULT '0'
Datei: session.lib.php
Suche:
PHP-Code:
$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");
und ersetzte sie mit:
PHP-Code:
$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis,k.neueagb FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");
suche:
PHP-Code:
$_SESSION['login'] = "";
$_GET['content'] = '/error/user_gesperrt';
}
und füge danach aber vor dem:
// Wenn es den User garnicht gibt
PHP-Code:
if ($login_check['neueagb'] == 1) {
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
$_GET['content'] = '/intern/neueagbs';
}
ein.
Suche weiter:
PHP-Code:
$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
und ersetze das mit
PHP-Code:
$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis`,`neueagb` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
suche:
PHP-Code:
if ($login_check['status'] == 1) {
und ersetze es mit
PHP-Code:
if ($login_check['status'] == 1 AND $login_check['neueagb'] == 0) {
Suche:
PHP-Code:
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
}
und füge dahinter:
PHP-Code:
if ($login_check['neueagb'] == 1) {
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();
}
ein.
Speichere folgendes als Datei: neueagbs.php unter /content/intern ab:
Der Wert:
var bis = time+5;
besagt das man 5 Sekunden warten muss und kann beliebig geändert werden.
PHP-Code:
<?
if (isset ($_POST['neueagb'])) {
db_query ('UPDATE '.$db_prefix.'_kontodaten SET neueagb = 0 WHERE uid = '.$_SESSION['uid'].'');
echo '<center><font color="#008000"><b>Fertig! Die neuen AGB wurden bestätigt!</font></center><br /><br /><br /><br />';
}
// Variabeln
$filename = 'lib/texte/agb.txt';
// Datei auslesen
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
?>
<table width="98%" border="0" cellpadding="2" cellspacing="2">
<tr><td>
<?//head("Allgemeine Geschäftsbedingungen");?>
<?=nl2br($inhalt);?>
<?//foot();?>
</td></tr></table>
<body onload="activate()">
<script>
var time = new Date;
var time = time.getTime();
var to = "document.forms['neueagb'].elements['button']";
var bis = time+5;
var text = "Bitte warten...";
var text2 = "AGB's bestätigen";
function activate()
{
noch = bis-time-1;
eval(to+".disabled = true");
if(time < bis)
{
eval(to+'.value = "' + text + ' (" + noch + ")"');
time = time+1;
window.setTimeout("activate()", 1000);
}
else
{
eval(to+".disabled = false");
eval(to+".value = \"" + text2 + "\"");
}
}
</script>
</div>
<div style="text-align: center;">
<body onload="activate()">
<form action="?content=/intern/neueagbs" id="button" name="neueagb" method="post" action="">
<input name="neueagb" type="submit" id="button" value="" />
</form>
Datei: functions.lib.php
Suche:
PHP-Code:
$us = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." and passwort='".$_SESSION['passwort']."' LIMIT 1");
ersetze es mit:
PHP-Code:
$us = db_query("SELECT `uid`,`passwort`,`status`,`hinweis`,`neueagb` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." and passwort='".$_SESSION['passwort']."' LIMIT 1");
suche:
PHP-Code:
@include_once('content/error/kein_zutritt.php');
@include_once('lib/footer.php');
die();
}
füge dahinter:
PHP-Code:
// neue AGB's
if ($login_check['neueagb'] == 1) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: http://www.hobbylose.de");
die();
}
ein, so scheint es bei mir derzeit zu gehen.
Bei meinem derzeitigem Test bleibt die aktuelle Session bestehen, erst wenn auf Logout geklickt oder der browser neu gestartet wird erscheinen erst die AGB's
Verbesserungs Vorschläge sind natürlich willkommen.