Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
matze-man

Regelmäßige NULL-Poser-Löschung

Recommended Posts

Cronjob, oder eine Abfrage in den Forumsdateien.

Beim Cronjob meinetwegen täglich ausführen, bei den Forumsdateien eben auch einmal am Tag, wie mans eben programmiert.

Einfacher wäere wohl der Cronjob (zeitgesteuerter Start eines Scripts), Cronjobs gibts oft kostenlos, so z.B. hier.

Dort gibts du (verinfacht) ein: http://www.meineseite.de/deletenullpost.php

lässt das jeden Tag, oder jede Stunde starten.

Und das Script verbindet sich einfach in die Datenbank:

Z.B. so:

<?php

    $datei = fopen("../../../conf_global.php","r");

    while (!feof($datei))

    {

        $zeile = fgets($datei,1000);

        $input = explode ("']", $zeile);

        $input[0] = substr ($input[0], 7);

        $input[1] = trim ($input[1]);

        $input[1] = substr ($input[1], 3);

        $input[1] = substr ($input[1], 0, -2);

        if ($input[0] == "sql_host")

        {

            $dbserver = $input[1];

        }

        if ($input[0] == "sql_user")

        {

            $dbuser = $input[1];

        }

        if ($input[0] == "sql_pass")

        {

            $dbpass = $input[1];

        }

        if ($input[0] == "sql_database")

        {

            $dbdatabase = $input[1];

        }       

    }

   

    $DB = @mysql_connect($dbserver, $dbuser, $dbpass) or die("Datenbank-Server: Anmeldung abgewiesen.");

    mysql_select_db($dbdatabase, $DB) or die("Datenbank nicht existent.");

    mysql_query("DELETE FROM ibf_members WHERE posts = 0") or die(mysql_error());

    mysql_close($DB);

?>

ist kein besonders schöner Code, ist noch aus meiner anfangszeit, aber er funktioniert !

Wichtig ist das hier:

DELETE FROM ibf_members WHERE posts = 0

heißt soviel wie:

LÖSCHE (alle Datensätze) VON ibf_members DIE BEI posts 0 STEHEN HABEN

Ich wäre damit aber vorsichtig, denn manchmal sind da Leute schneller weg, als du wollstest, und wenn die nur einen Tag zeit haben um mal was zu schreiben ...

hmmmmmm

Außerdem kosten AUCH Nullposter SOGUT wie keinen Speicherplatz in der Tabelle, also solang se ned nerven, warum solte ich die löschen ?

BLACK

Share this post


Link to post

fangen ma mal klein an:

--> http://mods.invisionize.com/db/index.php/f/4298

dieser mod verschiebt inaktive members in eine (vorher von dir) angelegte spezielle usergruppe.

dann kannst dir die mal händisch und in ruhe anschauen, obs des zurückschiebens wert sind, oder gekilled gehören.

abgesehen davon kannst du ja in der admin members mit bestimmten eigenschaften bearbeiten.

unter bestimmte eigenschften fallen auch sachen wie "wie lange ist der user member?" und "wie viel hat er gepostet?".

sprich: in der admin geht das eigendlich eh schon, du mußt nur ein paar klicks machen.

Edited by Ratman

Share this post


Link to post

Ich wäre damit aber vorsichtig, denn manchmal sind da Leute schneller weg, als du wollstest, und wenn die nur einen Tag zeit haben um mal was zu schreiben ...

...könntest doch zusätzlich noch eine UND Verknüpfung reinsetzen à la Posts = Null und last activity länger als 60 tage her oder so ähnlich.

Share this post


Link to post

wo im admin kann man das alles einstellen ?

einstellen kannst das nirgends

nur kannst nach members suchen, die bestimmten eigenschaften unterliegen - so z.b. wann sie sich angemeldet haben, wann sie zuletzt gepostet haben, usw.

dir als admin eines ipb muß ich sicher nicht sagen, wo ...

Share this post


Link to post

... tja, oder wenn wir schon bei Invisionize sind, gehen wir in die Abteilung "tasks" - und nehmen dieses Modul: http://mods.invisionize.com/db/index.php/f/3331

Vorteil: Einbindung dauert grad mal ein, zwei Minuten, es muß kein Code vom Board verändert werden dafür, und überhaupt macht das alles, was Du haben möchtest.

Achso, das Skript läuft bei mir bereits seit einiger Zeit (irgendwann seit November mein ich), keine Probleme damit gehabt seither. Hab das ganze mittlerweile auch schonmal etwas umgeschrieben gehabt auf ein zweites File, welches denn auch gleich noch eine ganz ähnliche Sache erledigt, das beliebte "du warst schon seit Wochen nimmer da, was ist los?"-erinnern an's Board bei inaktiven Mitgliedern ;).

Hab ich schon erwähnt, wie sehr ich Tasks liebe? Automatisch halt... :D

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×