Wir erfassen also zunächst mal wie lange der Benutzer schon registriert ist:
Code: Alles auswählen
intval( ( $current_time - $userdata['user_regdate'] ) / 86400 )
Die so errechneten Mitgliedstage multplizieren wir mit einem festen Wert. (hier 5)
Nun vergleichen wir diesen Wert mit der Anzahl der bereits vesendeten PNs, ist er höher wird eine Meldung ausgegeben und die PN wird nicht versand. (Meldung: "Du kannst nicht so schnell.. warte einen Moment")
Daraus ergibt sich folgende Anzahl an PNs die versendet werden können:
Am Tag der Registrierung (0 Tage registriert) => 0*5=0 PNs
Am zweiten Tag (1 Tag registriert) => 1*5=5 PNs
Am dritten Tag (2 Tage registriert) => 2*5=10 PNs
...
Am zehnten Tag (9 Tage registriert) => 9*5=45 PNs
Am einhundertsten Tag (99 Tage registriert) => 99*5=495 PNs
Normale Benutzer sollten also mit dieser Sperre keine Probleme bekommen. (Darum verzichten wir auch auf eine spezielle Fehlermeldung)
Hier jetzt die Einbauanleitung:
Code: Alles auswählen
----- öffne -----
privmsg.php
----- finde -----
$sql = "SELECT MAX(privmsgs_date) AS last_post_time
----- ersetze mit -----
$sql = "SELECT MAX(privmsgs_date) AS last_post_time, COUNT(privmsgs_from_userid) AS user_total_pm
----- finde -----
$current_time = time();
----- füge danach ein -----
$user_total_pm = $db_row['user_total_pm'];
$user_total_pm_allowed = intval( ( $current_time - $userdata['user_regdate'] ) / 86400 ) * 5; // Tage registriert * 5
----- finde -----
if ( ( $current_time - $last_post_time ) < $board_config['flood_interval'])
----- ersetze mit -----
if ( ( $current_time - $last_post_time ) < $board_config['flood_interval'] || $user_total_pm >= $user_total_pm_allowed)
Für's Erste sollte das aber ausreichen.
Gruß Christian