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_kontodatenADD `neueagbTINYINTNOT 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'] == 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&auml;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.