Na, ich habe die Scripte ein wenig umgeschrieben, weil die Datei im Upload-Verzeichnis nicht als Datei erkannt werden konnte....
Die Scripte sollten aber auch auf jedem anderen Server laufen. Falls nicht, tausche einfach die usercp_register.php und user_avatar.php aus.
Fehler bei Avatarupload
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
Christian_W
- Ehemaliges Teammitglied
- Beiträge: 5703
- Registriert: 26.02.2004 00:09
Na klar, warum nicht? Ihr wollt ja nur was zum Lachen haben. 
Wenn die Ideen aus dem Artikel KB:avatar_upload nicht weiterhelfen, könnte dieser Umstand in der nachfolgenden Art geklärt werden.
Problematik: Der Upload von Bildern auf dem User-PC als Avatar im Profil ist nicht möglich und bricht mit einer Fehlermeldung ab, dass das Bild nicht im richtigen Format sei.
Hintergrund: Der Server lädt die mit einem Formular hochgeladenen Bilder zwar in sein temp. Upload-Verzeichnis, gibt der temp. Datei aber keinen regulären Dateinamen.
Beispiel: /phptmp/phpZgf8z anstatt /phptmp/phpZgf8z.tmp
Somit kann das phpBB Script nicht erkennen, welcher Art die hochgeladene Datei ist.
getimagesize($HTTP_POST_FILES['avatar']['tmp_name']) gibt keine verwertbaren Daten heraus, da die temp. Datei als Verzeichnis erkannt wird.
Workarount: Die temp. hochgeladene Datei wird in das temp. Avavatar Verzeichnis des phpBB verschoben und die Notation der Datei auf ein verwertbares Format gebracht. Danach wird die Datei unter neuem Namen in das reguläre Avatar-Verzeichnis kopiert und das Original gelöscht. Der neue Name wird in die DB eingetragen und das Avatar ist für den User eingestellt.
Umbau der Scripts:
Änderungen sind gern willkommen.
Wenn die Ideen aus dem Artikel KB:avatar_upload nicht weiterhelfen, könnte dieser Umstand in der nachfolgenden Art geklärt werden.
Problematik: Der Upload von Bildern auf dem User-PC als Avatar im Profil ist nicht möglich und bricht mit einer Fehlermeldung ab, dass das Bild nicht im richtigen Format sei.
Hintergrund: Der Server lädt die mit einem Formular hochgeladenen Bilder zwar in sein temp. Upload-Verzeichnis, gibt der temp. Datei aber keinen regulären Dateinamen.
Beispiel: /phptmp/phpZgf8z anstatt /phptmp/phpZgf8z.tmp
Somit kann das phpBB Script nicht erkennen, welcher Art die hochgeladene Datei ist.
getimagesize($HTTP_POST_FILES['avatar']['tmp_name']) gibt keine verwertbaren Daten heraus, da die temp. Datei als Verzeichnis erkannt wird.
Workarount: Die temp. hochgeladene Datei wird in das temp. Avavatar Verzeichnis des phpBB verschoben und die Notation der Datei auf ein verwertbares Format gebracht. Danach wird die Datei unter neuem Namen in das reguläre Avatar-Verzeichnis kopiert und das Original gelöscht. Der neue Name wird in die DB eingetragen und das Avatar ist für den User eingestellt.
Umbau der Scripts:
- #-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
$user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' );
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$tmpdir = ini_get("upload_tmp_dir");
move_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'], './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp');
$HTTP_POST_FILES['avatar']['tmp_name'] = './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp';
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_avatar.php
#
#-----[ FIND ]------------------------------------------
#
if (!is_uploaded_file($avatar_filename))
{
message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__);
}
$move_file($avatar_filename, './' . $board_config['avatar_path'] . "/$new_filename");
#
#-----[ REPLACE WITH ]------------------------------------------
#
@chmod($avatar_filename, 0777);
@copy($avatar_filename, './' . $board_config['avatar_path'] . "/$new_filename");
@unlink($avatar_filename);
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Änderungen sind gern willkommen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Fehler
Hallo,
nachdem ich diese Änderungen übernommen habe, funktioniert der Avatar Upload, auf meinem Server hatte ich dasslebe Problem mit den Dateiendungen im tmp Directory.
Problem jetzt:
Sobald irgendein Profil geändert wird, und KEINE datei zum hochladen angegeben wird, kommt die fehlermeldung "avater muss im jpg, gif" blabla vorliegen... beim neu registrieren auch, da kann man ja nichtmals ein avatar auswählen...
Wie kann ich das wohl beheben?
danke
nachdem ich diese Änderungen übernommen habe, funktioniert der Avatar Upload, auf meinem Server hatte ich dasslebe Problem mit den Dateiendungen im tmp Directory.
Problem jetzt:
Sobald irgendein Profil geändert wird, und KEINE datei zum hochladen angegeben wird, kommt die fehlermeldung "avater muss im jpg, gif" blabla vorliegen... beim neu registrieren auch, da kann man ja nichtmals ein avatar auswählen...
Wie kann ich das wohl beheben?
danke
OK ich habs folgendermaßen gelöst, vor dem geänderten Part eine Abfrage einbauen, ob die uploadete datei vorhanden ist... Der erste Teil des Umbauskriptes müsste dh. lauten:
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
$user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' );
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if(is_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'])==true)
{
$tmpdir = ini_get("upload_tmp_dir");
move_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'], './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp');
$HTTP_POST_FILES['avatar']['tmp_name'] = './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp';
}
#
#
#
Ansonten war der Tipp super, danke!
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
$user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' );
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if(is_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'])==true)
{
$tmpdir = ini_get("upload_tmp_dir");
move_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'], './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp');
$HTTP_POST_FILES['avatar']['tmp_name'] = './' . $board_config['avatar_path'] . str_replace($tmpdir, '/tmp/', $HTTP_POST_FILES['avatar']['tmp_name']) . '.tmp';
}
#
#
#
Ansonten war der Tipp super, danke!