Ik ben medebeheerder van een PHPBB forum (versie 2.0.19) en zit met een heel vervelend probleem waar ik niet uit kan komen.
Op ons forum heb ik nog niet zo lang geleden enkele modificaties geinstalleerd en die hebben tot een week geleden allemaal probleemloos gefunctioneerd. Het gaat hier o.a. om de attachment mod en photo profile hack van Acyd Burn.
De photo profile hack werkte ook perfect maar had voor mij, en mijn collega beheerder, één groot nadeel. Wij konden via het ACP namelijk niet de profielfoto's van de gebruikers bewerken omdat deze niet getoond werden in het ACP. Ik ben daar eens naar op zoek gegaan en vond op een forum deze code:
#
#------[ OPEN: ]-------------------------------------------------------------
#
admin/admin_users.php
#
#------[ FIND: ]-------------------------------------------------------------
#
require($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
require($phpbb_root_path . 'language/lang_english/lang_profilephoto.'.$phpEx);
#
#------[ FIND: ]-------------------------------------------------------------
#
// Ok, the profile has been modified and submitted, let's update
if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) || isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) )
#
#------[ REPLACE WITH: ]-----------------------------------------------------
#
// Ok, the profile has been modified and submitted, let's update
if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) || isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) || isset( $HTTP_POST_VARS['submitphoto'] ) || isset( $HTTP_POST_VARS['cancelphoto'] ) )
#
#------[ FIND: ]-------------------------------------------------------------
#
$user_avatar = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar'] : '';
$user_avatar_type = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar_type'] : '';
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
$user_photo_upload = ( !empty($HTTP_POST_VARS['photourl']) ) ? trim($HTTP_POST_VARS['photourl']) : ( ( $HTTP_POST_FILES['photo']['tmp_name'] != 'none') ? $HTTP_POST_FILES['photo']['tmp_name'] : '' );
$user_photo_remoteurl = ( !empty($HTTP_POST_VARS['photoremoteurl']) ) ? trim($HTTP_POST_VARS['photoremoteurl']) : '';
$user_photo_name = ( !empty($HTTP_POST_FILES['photo']['name']) ) ? $HTTP_POST_FILES['photo']['name'] : '';
$user_photo_size = ( !empty($HTTP_POST_FILES['photo']['size']) ) ? $HTTP_POST_FILES['photo']['size'] : 0;
$user_photo_filetype = ( !empty($HTTP_POST_FILES['photo']['type']) ) ? $HTTP_POST_FILES['photo']['type'] : '';
$user_photo_url = ( !empty($HTTP_POST_VARS['photourl']) ) ? trim($HTTP_POST_VARS['photourl']) : '';
$user_photo = ( empty($user_photo_loc) && $mode == 'editprofile' ) ? $userdata['user_photo'] : '';
$user_photo_type = ( empty($user_photo_loc) && $mode == 'editprofile' ) ? $userdata['user_photo_type'] : '';
#
#------[ FIND: ]-------------------------------------------------------------
#
$user_avatar = $this_userdata['user_avatar'];
$user_avatar_type = $this_userdata['user_avatar_type'];
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
$user_photo = $this_userdata['user_photo'];
$user_photo_type = $this_userdata['user_photo_type'];
#
#------[ FIND: ]-------------------------------------------------------------
#
if( isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) )
#
#------[ REPLACE WITH: ]-----------------------------------------------------
#
if( isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) || isset( $HTTP_POST_VARS['submitphoto'] ) || isset( $HTTP_POST_VARS['cancelphoto'] ) )
#
#------[ FIND: ]-------------------------------------------------------------
#
if( isset( $HTTP_POST_VARS['submit'] ) )
{
include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
include($phpbb_root_path . 'profilephoto_mod.'.$phpEx);
#
#------[ FIND: ]-------------------------------------------------------------
#
else if( $user_avatar_local != "" && $avatar_sql == "" && !$error )
{
$avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_local) . "', user_avatar_type = " . USER_AVATAR_GALLERY;
}
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
// START Profilephoto - MOD
// PhotoProfile stuff
$photo_sql = "";
if( isset($HTTP_POST_VARS['photodel']) )
{
if( $this_userdata['user_photo_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_photo'] != "" )
{
if( @file_exists(@phpbb_realpath("./" . $board_config['photo_path'] . "/" . $this_userdata['user_photo'])) )
{
@unlink("./" . $board_config['photo_path'] . "/" . $this_userdata['user_photo']);
}
}
$photo_sql = ", user_photo = '', user_photo_type = " . USER_AVATAR_NONE;
}
else if( ( $user_photo_loc != "" || !empty($user_photo_url) ) && !$error )
{
// Only allow one type of upload, either a filename or a URL
if( !empty($user_photo_loc) && !empty($user_photo_url) )
{
$error = TRUE;
if( isset($error_msg) )
{
$error_msg .= "<br />";
}
$error_msg .= $lang['Only_one_photo'];
}
if( $user_photo_loc != "" )
{
if( file_exists(@phpbb_realpath($user_photo_loc)) && ereg(".jpg$|.gif$|.png$", $user_photo_name) )
{
if( $user_photo_size <= $board_config['photo_filesize'] && $user_photo_size > 0)
{
$error_type = false;
// Opera appends the image name after the type, not big, not clever!
preg_match("'image\/[x\-]*([a-z]+)'", $user_photo_filetype, $user_photo_filetype);
$user_photo_filetype = $user_photo_filetype[1];
switch( $user_photo_filetype )
{
case "jpeg":
case "pjpeg":
case "jpg":
$imgtype = '.jpg';
break;
case "gif":
$imgtype = '.gif';
break;
case "png":
$imgtype = '.png';
break;
default:
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['photo_filetype'] : $lang['photo_filetype'];
break;
}
if( !$error )
{
list($width, $height) = @getimagesize($user_photo_loc);
if( $width <= $board_config['photo_max_width'] && $height <= $board_config['photo_max_height'] )
{
$user_id = $this_userdata['user_id'];
$photo_filename = $user_id . $imgtype;
if( $this_userdata['user_photo_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_photo'] != "" )
{
if( @file_exists(@phpbb_realpath("./../" . $board_config['photo_path'] . "/" . $this_userdata['user_photo'])) )
{
@unlink("./../" . $board_config['photo_path'] . "/". $this_userdata['user_photo']);
}
}
@copy($user_photo_loc, "./../" . $board_config['photo_path'] . "/$photo_filename");
$photo_sql = ", user_photo = '$photo_filename', user_photo_type = " . USER_AVATAR_UPLOAD;
}
else
{
$l_photo_size = sprintf($lang['photo_imagesize'], $board_config['photo_max_width'], $board_config['photo_max_height']);
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_photo_size : $l_photo_size;
}
}
}
else
{
$l_photo_size = sprintf($lang['Photo_filesize'], round($board_config['photo_filesize'] / 1024));
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_photo_size : $l_photo_size;
}
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['Photo_filetype'] : $lang['Photo_filetype'];
}
}
else if( !empty($user_photo_url) )
{
// First check what port we should connect to, look for a :[xxxx]/ or, if that doesn't exist assume port 80 (http)
preg_match("/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/", $user_photo_url, $url_ary);
if( !empty($url_ary[4]) )
{
$port = (!empty($url_ary[3])) ? $url_ary[3] : 80;
$fsock = @fsockopen($url_ary[2], $port, $errno, $errstr);
if( $fsock )
{
$base_get = "/" . $url_ary[4];
// Uses HTTP 1.1, could use HTTP 1.0 ...
@fputs($fsock, "GET $base_get HTTP/1.1\r\n");
@fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
@fputs($fsock, "Connection: close\r\n\r\n");
unset($photo_data);
while( !@feof($fsock) )
{
$photo_data .= @fread($fsock, $board_config['photo_filesize']);
}
@fclose($fsock);
if( preg_match("/Content-Length\: ([0-9]+)[^\/ ][\s]+/i", $photo_data, $file_data1) && preg_match("/Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $photo_data, $file_data2) )
{
$file_size = $file_data1[1];
$file_type = $file_data2[1];
switch( $file_type )
{
case "jpeg":
case "pjpeg":
case "jpg":
$imgtype = '.jpg';
break;
case "gif":
$imgtype = '.gif';
break;
case "png":
$imgtype = '.png';
break;
default:
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Photo_filetype'] : $lang['Photo_filetype'];
break;
}
if( !$error && $file_size > 0 && $file_size < $board_config['photo_filesize'] )
{
$photo_data = substr($photo_data, strlen($photo_data) - $file_size, $file_size);
$tmp_filename = tempnam ("/tmp", $this_userdata['user_id'] . "-");
$fptr = @fopen($tmp_filename, "wb");
$bytes_written = @fwrite($fptr, $photo_data, $file_size);
@fclose($fptr);
if( $bytes_written == $file_size )
{
list($width, $height) = @getimagesize($tmp_filename);
if( $width <= $board_config['photo_max_width'] && $height <= $board_config['photo_max_height'] )
{
$user_id = $this_userdata['user_id'];
$photo_filename = $user_id . $imgtype;
if( $this_userdata['user_photo_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_photo'] != "")
{
if( file_exists(@phpbb_realpath("./../" . $board_config['photo_path'] . "/" . $this_userdata['user_photo'])) )
{
@unlink("./../" . $board_config['photo_path'] . "/" . $this_userdata['user_photo']);
}
}
@copy($tmp_filename, "./../" . $board_config['photo_path'] . "/$photo_filename");
@unlink($tmp_filename);
$photo_sql = ", user_photo = '$photo_filename', user_photo_type = " . USER_AVATAR_UPLOAD;
}
else
{
$l_photo_size = sprintf($lang['Photo_imagesize'], $board_config['photo_max_width'], $board_config['photo_max_height']);
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_photo_size : $l_photo_size;
}
}
else
{
// Error writing file
@unlink($tmp_filename);
message_die(GENERAL_ERROR, "Could not write photo file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__);
}
}
}
else
{
// No data
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['File_no_data'] : $lang['File_no_data'];
}
}
else
{
// No connection
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['No_connection_URL'] : $lang['No_connection_URL'];
}
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
}
}
else if( !empty($user_photo_name) )
{
$l_photo_size = sprintf($lang['Photo_filesize'], round($board_config['photo_filesize'] / 1024));
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_photo_size : $l_photo_size;
}
}
else if( $user_photo_remoteurl != "" && $photo_sql == "" && !$error )
{
if( !preg_match("#^http:\/\/#i", $user_photo_remoteurl) )
{
$user_photo_remoteurl = "http://" . $user_photo_remoteurl;
}
if( preg_match("#^(http:\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)*[a-z]+\/.*?\.(gif|jpg|png)$)#is", $user_photo_remoteurl) )
{
$photo_sql = ", user_photo = '" . str_replace("\'", "''", $user_photo_remoteurl) . "', user_photo_type = " . USER_AVATAR_REMOTE;
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['Wrong_remote_photo_format'] : $lang['Wrong_remote_photo_format'];
}
}
else if( $user_photo_local != "" && $photo_sql == "" && !$error )
{
$photo_sql = ", user_photo = '" . str_replace("\'", "''", $user_photo_local) . "', user_photo_type = " . USER_AVATAR_GALLERY;
}
// END Profilephoto - MOD
#
#------[ FIND: ]-------------------------------------------------------------
#
// Update entry in DB
if( !$error )
{
$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) . "', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", $aim) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_sig_bbcode_uid = '$signature_bbcode_uid', user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, user_rank = $user_rank" . $avatar_sql . "
#
#------[ INLINE FIND: ]------------------------------------------------------
#
" . $avatar_sql .
#
#------[ INLINE AFTER, ADD: ]------------------------------------------------
#
$photo_sql .
#
#------[ END OF LINE SHOULD NOW LOOK LIKE THIS: ]----------------------------
#
" . $avatar_sql . $photo_sql . "
#
#------[ FIND: ]-------------------------------------------------------------
#
else if( !isset( $HTTP_POST_VARS['submit'] ) && $mode != 'save' && !isset( $HTTP_POST_VARS['avatargallery'] ) && !isset( $HTTP_POST_VARS['submitavatar'] ) && !isset( $HTTP_POST_VARS['cancelavatar'] ) )
#
#------[ REPLACE WITH: ]-----------------------------------------------------
#
else if( !isset( $HTTP_POST_VARS['submit'] ) && $mode != 'save' && !isset( $HTTP_POST_VARS['avatargallery'] ) && !isset( $HTTP_POST_VARS['submitavatar'] ) && !isset( $HTTP_POST_VARS['cancelavatar'] ) && !isset( $HTTP_POST_VARS['submitphoto'] ) && !isset( $HTTP_POST_VARS['cancelphoto'] ) )
#
#------[ FIND: ]-------------------------------------------------------------
#
case USER_AVATAR_GALLERY:
$avatar = '<img src="../' . $board_config['avatar_gallery_path'] . '/' . $user_avatar . '" alt="" />';
break;
}
}
else
{
$avatar = "";
}
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
if ( !empty($user_photo_local) )
{
$s_hidden_fields .= '<input type="hidden" name="photolocal" value="' . $user_photo_local . '" />';
}
if ( $user_photo_type )
{
switch( $user_photo_type )
{
case USER_AVATAR_UPLOAD:
$photo_img = ( $board_config['allow_photo_upload'] ) ? '<img src="../' . $board_config['photo_path'] . '/' . $user_photo . '" alt="" />' : '';
break;
case USER_AVATAR_REMOTE:
$photo_img = ( $board_config['allow_photo_remote'] ) ? '<img src="../' . $user_photo . '" alt="" />' : '';
break;
}
}
$template->set_filenames(array(
'photobox' => 'profile_photo_box.tpl')
);
#
#------[ FIND: ]-------------------------------------------------------------
#
'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'],
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
'L_PROFLE_PHOTO_SETTINGS' => $lang['Profile_photo_settings'],
'L_ALLOW_PHOTO_REMOTE' => $lang['Allow_photo_remote'],
'L_ALLOW_PHOTO_REMOTE_EXPLAIN' => $lang['Allow_photo_remote_explain'],
'L_ALLOW_PHOTO_UPLOAD' => $lang['Allow_photo_upload'],
'L_PHOTO_MAX_FILESIZE' => $lang['Photo_max_filesize'],
'L_PHOTO_MAX_FILESIZE_EXPLAIN' => $lang['Photo_max_filesize_explain'],
'L_MAX_PHOTO_SIZE' => $lang['Max_photo_size'],
'L_PHOTO_STORAGE_PATH' => $lang['Photo_storage_path'],
'L_PHOTO_STORAGE_PATH_EXPLAIN' => $lang['Photo_storage_path_explain'],
'PHOTO_REMOTE_YES' => $photo_remote_yes,
'PHOTO_REMOTE_NO' => $photo_remote_no,
'PHOTO_UPLOAD_YES' => $photo_upload_yes,
'PHOTO_UPLOAD_NO' => $photo_upload_no,
'PHOTO_FILESIZE' => $new['photo_filesize'],
'PHOTO_MAX_HEIGHT' => $new['photo_max_height'],
'PHOTO_MAX_WIDTH' => $new['photo_max_width'],
'PHOTO_PATH' => $new['photo_path'],
'ALLOW_PHOTO' => $board_config['allow_photo_upload'],
'PHOTO' => $photo_img,
'PHOTO_SIZE' => $board_config['photo_filesize'],
'L_PHOTO_PANEL' => $lang['Photo_panel'],
'L_PHOTO_EXPLAIN' => sprintf($lang['Photo_explain'], $board_config['photo_max_width'], $board_config['photo_max_height'], (round($board_config['photo_filesize'] / 1024))),
'L_UPLOAD_PHOTO_FILE' => $lang['Upload_photo_file'],
'L_UPLOAD_PHOTO_URL' => $lang['Upload_photo_url'],
'L_UPLOAD_PHOTO_URL_EXPLAIN' => $lang['Upload_photo_url_explain'],
'L_LINK_REMOTE_PHOTO' => $lang['Link_remote_photo'],
'L_LINK_REMOTE_PHOTO_EXPLAIN' => $lang['Link_remote_photo_explain'],
'L_DELETE_PHOTO' => $lang['Delete_Image'],
'L_CURRENT_IMAGE' => $lang['Current_Image'],
'S_ALLOW_PHOTO_UPLOAD' => $board_config['allow_photo_upload'],
'S_ALLOW_PHOTO_REMOTE' => $board_config['allow_photo_remote'],
'S_PHOTO_HIDDEN_FIELDS' => $s_hidden_fields,
#
#------[ FIND: ]-------------------------------------------------------------
#
if( $board_config['allow_avatar_remote'] == TRUE )
{
$template->assign_block_vars('avatar_remote_link', array() );
}
#
#------[ AFTER, ADD: ]-------------------------------------------------------
#
if ( $board_config['allow_photo_upload'] || $board_config['allow_photo_remote'] )
{
$template->assign_block_vars('switch_photo_block', array() );
if ( $board_config['allow_photo_upload'] && file_exists('./../' . $board_config['photo_path']) )
{
if ( $form_enctype != '' )
{
$template->assign_block_vars('switch_photo_block.switch_photo_local_upload', array() );
}
$template->assign_block_vars('switch_photo_block.switch_photo_remote_upload', array() );
}
if ( $board_config['allow_photo_remote'] )
{
$template->assign_block_vars('switch_photo_block.switch_photo_remote_link', array() );
}
}
$template->assign_var_from_handle('PHOTO_BOX', 'photobox');
#
#------[ OPEN: ]-------------------------------------------------------------
#
templates/template_name/admin/user_edit_body.tpl
#
#------[ FIND: ]-------------------------------------------------------------
#
<input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" />
#
#------[ REPLACE WITH: ]-----------------------------------------------------
#
<!--<input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" />-->
#
#------[ FIND: ]-------------------------------------------------------------
#
<!-- END avatar_local_gallery -->
#
#------[ AFTER, ADD: ]-------------------------------------------------------
# (I really wanted to use {PHOTOBOX} but for some reason I couldn't get it to show.)
# (I did copy profile_photo_box.tpl to my templates/template_name/admin folder.)
# (Anyway the switches are working now so I will live with it for now.)
<!-- BEGIN switch_photo_block -->
<tr>
<th class="thSides" colspan="2" height="28"> </th>
</tr>
<tr>
<th colspan="2" height="12" valign="middle">{L_PHOTO_PANEL}</th>
</tr>
<tr>
<td class="row1" colspan="2"><table width="70%" cellspacing="2" cellpadding="0" border="0" align="center">
<tr>
<td width="65%"><span class="gensmall">{L_PHOTO_EXPLAIN}</span></td>
<td align="center"><span class="gensmall">{L_CURRENT_IMAGE}</span><br />{PHOTO}<br /><input type="checkbox" name="photodel" /> <span class="gensmall">{L_DELETE_PHOTO}</span></td>
</tr>
</table></td>
</tr>
<!-- BEGIN switch_photo_local_upload -->
<tr>
<td class="row1"><span class="gen">{L_UPLOAD_PHOTO_FILE}:</span></td>
<td class="row2"><!--<input type="hidden" name="MAX_PHOTO_FILE_SIZE" value="{PHOTO_SIZE}" />--><input type="file" name="photo" class="post" style="width:200px" /></td>
</tr>
<!-- END switch_photo_local_upload -->
<!-- BEGIN switch_photo_remote_upload -->
<tr>
<td class="row1"><span class="gen">{L_UPLOAD_PHOTO_URL}:</span><br /><span class="gensmall">{L_UPLOAD_PHOTO_URL_EXPLAIN}</span></td>
<td class="row2"><input type="text" name="photourl" size="40" class="post" style="width:200px" /></td>
</tr>
<!-- END switch_photo_remote_upload -->
<!-- BEGIN switch_photo_remote_link -->
<tr>
<td class="row1"><span class="gen">{L_LINK_REMOTE_PHOTO}:</span><br /><span class="gensmall">{L_LINK_REMOTE_PHOTO_EXPLAIN}</span></td>
<td class="row2"><input type="text" name="photoremoteurl" size="40" class="post" style="width:200px" /></td>
</tr>
<!-- END switch_photo_remote_link -->
{S_PHOTO_HIDDEN_FIELDS}
<!-- END switch_photo_block -->
#
#-----[ SAVE/CLOSE ALL FILES ]-----------------------------------------------
#
# ..::END::..Nadat ik beide aangepaste bestanden naar de server geupload had kon ik via het ACP inderdaad de profielfoto's van de gebruikers ook zien en heb via die weg ook twee foto's kunnen verwijderen. Ik kwam echter tot de ontdekking dat ik geen nieuwe foto in een profiel kon uploaden via het ACP. De schrik sloeg mij helemaal om het hart toen ik bemerkte dat het ook niet meer mogelijk was om een foto via de normale weg voor het wijzigen van het profiel, te uploaden.
Ik heb daarop direct de twee aangepaste bestanden op de server weer vervangen door de originele, ongewijzigde, bestanden. Het kwaad was echter schijnbaar al geschied daar het ook nu niet meer mogelijk was om een foto te uploaden in het profiel.
Ik heb me al geruime tijd het hoofd gebroken wat er nu aan de hand kan zijn maar ik kom er niet uit. Ik ben wel tot de ontdekking gekomen dat het wel mogelijk is om een foto te uploaden als deze kleiner is dan 20kB (de waarde die we ingesteld hadden staan voor het uploaden van een avatar). Het aanpassen van de waarden voor de profielfoto in het ACPhebben geen enkel effect op het uploaden van een foto in het profiel. Als ik echter de toegestande bestandsgrootte voor het uploaden van een avatar aanpas heeft dit ook geen effect op een up te loaden profielfoto. Een profielfoto blijft geaccepteerd worden als deze kleiner is dan 20kB.
Schakel ik nu in het ACP de mogelijkheid om een avatar te uploaden uit accepteert de photo profile hack wel een grotere foto dan 20kB maar wordt hij niet geupload.
Het lijkt er dus op dat er door de wijzigingen in de hierboven geplaatste code er ook wijzigingen elders in het script of in de database zijn aangebracht. Als ik in de database kijk zijn alle rijen voor de profielfoto wel aanwezig in de tabellen "config" en "users" en staan daar ook de juiste waardes bij.
Ik kan er echter niet uitkomen waar ik nog kan zoeken. Is er misschien iemand die, na het zien van bovengeplaatste code, een idee heeft waar ik de oplossing voor dit probleem zou kunnen zoeken?
Groeten,
Erik