Profile Photo Hack functioneert niet meer.

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
2strokedriver
Berichten: 74
Lid geworden op: 07 dec 2006, 21:18

Profile Photo Hack functioneert niet meer.

Bericht door 2strokedriver » 29 jan 2008, 21:16

Hallo mensen,

Ik en mijn collega beheerder van het volgende forum, http://www.bus-forum.nlzitten met een probleem en we hopen dat één van jullie ons kan helpen.

Ons forum maakt gebruik van PHPBB versie 2.0.19 en is ondermeer voorzien van de volgende modificaties:

Attachment mod: http://www.phpbb.com/community/viewtopic.php?t=74505
Profile Photo Hack: http://www.phpbbhacks.com/download/229
Modify Profile: http://www.phpbbhacks.com/download/193
Admin Userlist: http://www.phpbb.com/mods/db/index.php? ... ib_id=1663
ADD ON to Photo in Profile MOD (User Photo in Memberlist & Viewtopic) (geen URL bekend)

Ons forum werkt eigenlijk probleemloos en ook de modificaties hebben tot voor kort feilloos gefunctioneerd. Mijn collegabeheerder en ik liepen echter tegen het feit aan dat we in het ACP geen controle hadden over de profielfoto's van onze gebruikers. Als we in het ACP het profiel van een willekeurige gebruiker bekeken werd daarin het gedeelte voor de profielfoto niet getoond. Ik ben daarom op het internet gaan zoeken naar een eventuele oplossing en stuitte daarbij op dit volgende topic: http://www.phpbbhacks.com/forums/profil ... file+photo

In dit topic wordt de volgende modificatie aan de code van de bestanden admin/admin_users.php en templates/template_name/admin/user_edit_body.tpl gegeven:

Code: Selecteer alles

# 
#------[ 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">&nbsp;</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" />&nbsp;<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::.. 
Ik heb de wijzigingen als aangegeven in bovenstaande modificatie aangebracht in beide genoemde bestanden waarna ik deze bestanden geupload heb naar de PHPBB map van ons Forum op de server. Na het uploaden van beide aangepaste bestanden 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 nu 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 op dat moment ingesteld hadden staan voor het uploaden van een avatar). Het aanpassen van de waarden voor de profielfoto in het ACP hebben nu geen enkel effect meer op het uploaden van een foto in het profiel. Als ik echter de toegestane bestandsgrootte voor het uploaden van een avatar aanpas, heeft dit ook geen effect meer op een te uploaden profielfoto. Een profielfoto blijft geaccepteerd worden als deze maar kleiner is dan 20kB.

Als er overigens een foto groter dan 20 kB wordt geselecteerd voor de profielfoto (terwijl we zo'n 150kB ingesteld hebben), en je drukt op OK dan keer je terug naar je profielpagina. Bovenaan zou er dan een foutmelding moeten staan maar die verschijnt ook niet. Er wordt als het ware een lege regel getoond. Voor mensen die zich voor het eerst registreren op ons forum is dit natuurlijk ook erg verwarrend omdat ze niet geaccepteerd worden maar daar geen reden voor te zien krijgen.

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 daadwerkelijk geupload. Er wordt aangegeven dat het profiel is bijgewerkt maar de foto is 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 ben maar een beginneling op PHP gebied maar ook mensen uit mijn omgeving met enige PHP kennis komen hier niet uit. Is er misschien iemand van jullie die het aandurft om eens naar dit probleem te kijken en te proberen of hij, of zij, de profielfoto mod weer werkend kan krijgen?

Groeten,
Erik

Gebruikersavatar
Tom V
Berichten: 2487
Lid geworden op: 24 jan 2006, 17:04
Locatie: Houtvenne (BE)
Contacteer:

Re: Profile Photo Hack functioneert niet meer.

Bericht door Tom V » 29 jan 2008, 23:33

Dit is werk voor het support team (anders hebben die weer niets te doen)

Bij deze dus verplaatst :)

Gesloten