Seite 1 von 2
Avatar-Upload: zeitliche Sperre: Wie?
Verfasst: 09.08.2003 02:21
von Matlock
Bei uns nervt ein User durch tägliches Ändern seines Avatars. Völlig verbieten wollen wir ihm den Upload nicht. Wie kann man es erreichen, daß User ihren Avatar nur nach Ablauf von X (z.B. 30) Tagen ändern können?
Re: Avatar-Upload: zeitliche Sperre: Wie?
Verfasst: 11.08.2003 00:37
von Gast
Matlock hat geschrieben:
Bei uns nervt ein User durch tägliches Ändern seines Avatars. Völlig verbieten wollen wir ihm den Upload nicht. Wie kann man es erreichen, daß User ihren Avatar nur nach Ablauf von X (z.B. 30) Tagen ändern können?
Ja, manche übertreibens echt. Wär ne gute Sache!
Verfasst: 13.08.2003 14:50
von Matlock
Weiß denn wirklich keiner, wie das geht? Hilfe!!!
Verfasst: 13.08.2003 15:28
von QCO
für den fall, das es sich um upload-avatare handel (wenn nicht, dann wird das ganze deutlich aufwendiger)
man könnte überprüfen, wann der jetztige avatar des user erstellt wurde
ala
fileatime(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']))+60*60*24*30 > time()
als umsetzung (ungetestet, nur einfach mal so ins unreine gedacht)
geh mal in includes/usercp_register.php
dort findest du so um zeile 391 rum folgendes
Code: Alles auswählen
if ( isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile' )
{
$avatar_sql = user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);
}
danach fügst du folgendes ein:
Code: Alles auswählen
if ( !empty($userdata['user_avatar']) && ( @fileatime(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']))+60*60*24*30 > time() ) && ( !empty($user_avatar_upload) || !empty($user_avatar_name) || !empty($user_avatar_remoteurl) || !empty($user_avatar_local) ) ) {
$error = true;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Du darfst deinen Avatar nur alle 30 Tage ändern.';
}
else
{
und anschließend noch nach folgendem (etwa zeile430
Code: Alles auswählen
$avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local);
}
fügst du noch ein
ein.
-- edit --
Fehler aus Code entfernt
Verfasst: 13.08.2003 16:49
von Matlock
Ich hab das mal so eingefügt, 100%ig wie oben beschrieben, es kommt beim Aufruf des Profils folgende Fehlermeldung:
Code: Alles auswählen
Parse error: parse error, unexpected '{' in /www/htdocs/v081722/phpBB2/includes/usercp_register.php on line 391
Woran kann es liegen?
Verfasst: 13.08.2003 16:56
von Henne
Kannst deine Datei mal als .txt speichern und nen Link posten?
Verfasst: 13.08.2003 16:59
von Matlock
Hm, da hat wohl hinter
noch ein
gefehlt. Jetzt kann man das Profil anklicken.
Bei dem dann folgenden Versuch, einen neuen Avatar hochzuladen, der alte war über 30 Tage alt, kommen folgende Fehlermeldungen:
Code: Alles auswählen
Warning: fileatime() [function.fileatime]: Stat failed for (errno=2 - No such file or directory) in /www/htdocs/v081722/phpBB2/includes/usercp_register.php on line 391
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/v081722/phpBB2/includes/usercp_register.php:391) in /www/htdocs/v081722/phpBB2/includes/page_header.php on line 504
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/v081722/phpBB2/includes/usercp_register.php:391) in /www/htdocs/v081722/phpBB2/includes/page_header.php on line 506
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/v081722/phpBB2/includes/usercp_register.php:391) in /www/htdocs/v081722/phpBB2/includes/page_header.php on line 507
Verfasst: 13.08.2003 17:06
von Matlock
Henne23 hat geschrieben:Kannst deine Datei mal als .txt speichern und nen Link posten?
So, da ist die
Datei
Die Änderungen sind gekennzeichnet mit // uploadsperre 30 tage
Verfasst: 13.08.2003 17:15
von Henne
Hast du schon nen Avatar von dir auf dem Server liegen?
Verfasst: 13.08.2003 17:17
von QCO

ok, war ja auch nur ein schuss ins blaue
hab noch ein paar fehler rausgemacht:
Code: Alles auswählen
if ( !empty($userdata['user_avatar']) && ( @fileatime(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']))+60*60*24*30 > time() ) && ( !empty($user_avatar_upload) || !empty($user_avatar_name) || !empty($user_avatar_remoteurl) || !empty($user_avatar_local) ) ) {
$error = true;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Du darfst deinen Avatar nur alle 30 Tage ändern.';
}
leider hab ich grad keine boardinstallation, in der ich das gefahrlos testen könnte...