home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / xoops-2.0.18.1.exe / xoops-2.0.18.1 / htdocs / edituser.php < prev    next >
Encoding:
PHP Script  |  2008-02-11  |  20.6 KB  |  386 lines

  1. <?php
  2. // $Id: edituser.php 1289 2008-02-10 12:16:29Z phppp $
  3. //  ------------------------------------------------------------------------ //
  4. //                XOOPS - PHP Content Management System                      //
  5. //                    Copyright (c) 2000 XOOPS.org                           //
  6. //                       <http://www.xoops.org/>                             //
  7. //  ------------------------------------------------------------------------ //
  8. //  This program is free software; you can redistribute it and/or modify     //
  9. //  it under the terms of the GNU General Public License as published by     //
  10. //  the Free Software Foundation; either version 2 of the License, or        //
  11. //  (at your option) any later version.                                      //
  12. //                                                                           //
  13. //  You may not change or alter any portion of this comment or credits       //
  14. //  of supporting developers from this source code or any supporting         //
  15. //  source code which is considered copyrighted (c) material of the          //
  16. //  original comment or credit authors.                                      //
  17. //                                                                           //
  18. //  This program is distributed in the hope that it will be useful,          //
  19. //  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
  20. //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
  21. //  GNU General Public License for more details.                             //
  22. //                                                                           //
  23. //  You should have received a copy of the GNU General Public License        //
  24. //  along with this program; if not, write to the Free Software              //
  25. //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
  26. //  ------------------------------------------------------------------------ //
  27.  
  28. $xoopsOption['pagetype'] = 'user';
  29. include 'mainfile.php';
  30. include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
  31.  
  32. // If not a user, redirect
  33. if (!is_object($xoopsUser)) {
  34.     redirect_header('index.php',3,_US_NOEDITRIGHT);
  35.     exit();
  36. }
  37.  
  38. // initialize $op variable
  39. $op = 'editprofile';
  40. if (!empty($_POST['op'])) {
  41.     $op = $_POST['op'];
  42. }
  43. if (!empty($_GET['op'])) {
  44.     $op = $_GET['op'];
  45. }
  46.  
  47. $config_handler =& xoops_gethandler('config');
  48. $xoopsConfigUser =& $config_handler->getConfigsByCat(XOOPS_CONF_USER);
  49. $myts =& MyTextSanitizer::getInstance();
  50.  
  51. if ($op == 'saveuser') {
  52.     if (!$GLOBALS['xoopsSecurity']->check()) {
  53.         redirect_header('index.php',3,_US_NOEDITRIGHT."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
  54.         exit;
  55.     }
  56.     $uid = 0;
  57.     if (!empty($_POST['uid'])) {
  58.         $uid = intval($_POST['uid']);
  59.     }
  60.     if (empty($uid) || $xoopsUser->getVar('uid') != $uid) {
  61.         redirect_header('index.php',3,_US_NOEDITRIGHT);
  62.         exit();
  63.     }
  64.     $errors = array();
  65.     $myts =& MyTextSanitizer::getInstance();
  66.     if ($xoopsConfigUser['allow_chgmail'] == 1) {
  67.         $email = '';
  68.         if (!empty($_POST['email'])) {
  69.             $email = $myts->stripSlashesGPC(trim($_POST['email']));
  70.         }
  71.         if ($email == '' || !checkEmail($email)) {
  72.             $errors[] = _US_INVALIDMAIL;
  73.         }
  74.     }
  75.     $password = '';
  76.     if (!empty($_POST['password'])) {
  77.         $password = $myts->stripSlashesGPC(trim($_POST['password']));
  78.     }
  79.     if ($password != '') {
  80.         if (strlen($password) < $xoopsConfigUser['minpass']) {
  81.             $errors[] = sprintf(_US_PWDTOOSHORT,$xoopsConfigUser['minpass']);
  82.         }
  83.         $vpass = '';
  84.         if (!empty($_POST['vpass'])) {
  85.             $vpass = $myts->stripSlashesGPC(trim($_POST['vpass']));
  86.         }
  87.         if ($password != $vpass) {
  88.             $errors[] = _US_PASSNOTSAME;
  89.         }
  90.     }
  91.     if (count($errors) > 0) {
  92.         include XOOPS_ROOT_PATH.'/header.php';
  93.         echo '<div>';
  94.         foreach ($errors as $er) {
  95.             echo '<span style="color: #ff0000; font-weight: bold;">'.$er.'</span><br />';
  96.         }
  97.         echo '</div><br />';
  98.         $op = 'editprofile';
  99.     } else {
  100.         $member_handler =& xoops_gethandler('member');
  101.         $edituser =& $member_handler->getUser($uid);
  102.         $edituser->setVar('name', $_POST['name']);
  103.         if ($xoopsConfigUser['allow_chgmail'] == 1) {
  104.             $edituser->setVar('email', $email, true);
  105.         }
  106.         $edituser->setVar('url', formatURL($_POST['url']));
  107.         $edituser->setVar('user_icq', $_POST['user_icq']);
  108.         $edituser->setVar('user_from', $_POST['user_from']);
  109.         $edituser->setVar('user_sig', xoops_substr($_POST['user_sig'], 0, 255));
  110.         $user_viewemail = (!empty($_POST['user_viewemail'])) ? 1 : 0;
  111.         $edituser->setVar('user_viewemail', $user_viewemail);
  112.         $edituser->setVar('user_aim', $_POST['user_aim']);
  113.         $edituser->setVar('user_yim', $_POST['user_yim']);
  114.         $edituser->setVar('user_msnm', $_POST['user_msnm']);
  115.         if ($password != '') {
  116.             $edituser->setVar('pass', md5($password), true);
  117.         }
  118.         $attachsig = !empty($_POST['attachsig']) ? 1 : 0;
  119.         $edituser->setVar('attachsig', $attachsig);
  120.         $edituser->setVar('timezone_offset', $_POST['timezone_offset']);
  121.         $edituser->setVar('uorder', $_POST['uorder']);
  122.         $edituser->setVar('umode', $_POST['umode']);
  123.         $edituser->setVar('notify_method', $_POST['notify_method']);
  124.         $edituser->setVar('notify_mode', $_POST['notify_mode']);
  125.         $edituser->setVar('bio', xoops_substr($_POST['bio'], 0, 255));
  126.         $edituser->setVar('user_occ', $_POST['user_occ']);
  127.         $edituser->setVar('user_intrest', $_POST['user_intrest']);
  128.         $edituser->setVar('user_mailok', $_POST['user_mailok']);
  129.         if (!empty($_POST['usecookie'])) {
  130.             setcookie($xoopsConfig['usercookie'], $xoopsUser->getVar('uname'), time()+ 31536000);
  131.         } else {
  132.             setcookie($xoopsConfig['usercookie']);
  133.         }
  134.         if (!$member_handler->insertUser($edituser)) {
  135.             include XOOPS_ROOT_PATH.'/header.php';
  136.             echo $edituser->getHtmlErrors();
  137.             include XOOPS_ROOT_PATH.'/footer.php';
  138.         } else {
  139.             redirect_header('userinfo.php?uid='.$uid, 1, _US_PROFUPDATED);
  140.         }
  141.         exit();
  142.     }
  143. }
  144.  
  145.  
  146. if ($op == 'editprofile') {
  147.     include_once XOOPS_ROOT_PATH.'/header.php';
  148.     include_once XOOPS_ROOT_PATH.'/include/comment_constants.php';
  149.     echo '<a href="userinfo.php?uid='.$xoopsUser->getVar('uid').'">'. _US_PROFILE .'</a> <span style="font-weight:bold;">»»</span> '. _US_EDITPROFILE .'<br /><br />';
  150.     $form = new XoopsThemeForm(_US_EDITPROFILE, 'userinfo', 'edituser.php', 'post', true);
  151.     $uname_label = new XoopsFormLabel(_US_NICKNAME, $xoopsUser->getVar('uname'));
  152.     $form->addElement($uname_label);
  153.     $name_text = new XoopsFormText(_US_REALNAME, 'name', 30, 60, $xoopsUser->getVar('name', 'E'));
  154.     $form->addElement($name_text);
  155.     $email_tray = new XoopsFormElementTray(_US_EMAIL, '<br />');
  156.     if ($xoopsConfigUser['allow_chgmail'] == 1) {
  157.         $email_text = new XoopsFormText('', 'email', 30, 60, $xoopsUser->getVar('email'));
  158.     } else {
  159.         $email_text = new XoopsFormLabel('', $xoopsUser->getVar('email'));
  160.     }
  161.     $email_tray->addElement($email_text);
  162.     $email_cbox_value = $xoopsUser->user_viewemail() ? 1 : 0;
  163.     $email_cbox = new XoopsFormCheckBox('', 'user_viewemail', $email_cbox_value);
  164.     $email_cbox->addOption(1, _US_ALLOWVIEWEMAIL);
  165.     $email_tray->addElement($email_cbox);
  166.     $form->addElement($email_tray);
  167.     $url_text = new XoopsFormText(_US_WEBSITE, 'url', 30, 100, $xoopsUser->getVar('url', 'E'));
  168.     $form->addElement($url_text);
  169.  
  170.     $timezone_select = new XoopsFormSelectTimezone(_US_TIMEZONE, 'timezone_offset', $xoopsUser->getVar('timezone_offset'));
  171.     $icq_text = new XoopsFormText(_US_ICQ, 'user_icq', 15, 15, $xoopsUser->getVar('user_icq', 'E'));
  172.     $aim_text = new XoopsFormText(_US_AIM, 'user_aim', 18, 18, $xoopsUser->getVar('user_aim', 'E'));
  173.     $yim_text = new XoopsFormText(_US_YIM, 'user_yim', 25, 25, $xoopsUser->getVar('user_yim', 'E'));
  174.     $msnm_text = new XoopsFormText(_US_MSNM, 'user_msnm', 30, 100, $xoopsUser->getVar('user_msnm', 'E'));
  175.     $location_text = new XoopsFormText(_US_LOCATION, 'user_from', 30, 100, $xoopsUser->getVar('user_from', 'E'));
  176.     $occupation_text = new XoopsFormText(_US_OCCUPATION, 'user_occ', 30, 100, $xoopsUser->getVar('user_occ', 'E'));
  177.     $interest_text = new XoopsFormText(_US_INTEREST, 'user_intrest', 30, 150, $xoopsUser->getVar('user_intrest', 'E'));
  178.     $sig_tray = new XoopsFormElementTray(_US_SIGNATURE, '<br />');
  179.     include_once 'include/xoopscodes.php';
  180.     $sig_tarea = new XoopsFormDhtmlTextArea('', 'user_sig', $xoopsUser->getVar('user_sig', 'E'));
  181.     $sig_tray->addElement($sig_tarea);
  182.     $sig_cbox_value = $xoopsUser->getVar('attachsig') ? 1 : 0;
  183.     $sig_cbox = new XoopsFormCheckBox('', 'attachsig', $sig_cbox_value);
  184.     $sig_cbox->addOption(1, _US_SHOWSIG);
  185.     $sig_tray->addElement($sig_cbox);
  186.     $umode_select = new XoopsFormSelect(_US_CDISPLAYMODE, 'umode', $xoopsUser->getVar('umode'));
  187.     $umode_select->addOptionArray(array('nest'=>_NESTED, 'flat'=>_FLAT, 'thread'=>_THREADED));
  188.     $uorder_select = new XoopsFormSelect(_US_CSORTORDER, 'uorder', $xoopsUser->getVar('uorder'));
  189.     $uorder_select->addOptionArray(array(XOOPS_COMMENT_OLD1ST => _OLDESTFIRST, XOOPS_COMMENT_NEW1ST => _NEWESTFIRST));
  190.     // RMV-NOTIFY
  191.     // TODO: add this to admin user-edit functions...
  192.     include_once XOOPS_ROOT_PATH . "/language/" . $xoopsConfig['language'] . '/notification.php';
  193.     include_once XOOPS_ROOT_PATH . '/include/notification_constants.php';
  194.     $notify_method_select = new XoopsFormSelect(_NOT_NOTIFYMETHOD, 'notify_method', $xoopsUser->getVar('notify_method'));
  195.     $notify_method_select->addOptionArray(array(XOOPS_NOTIFICATION_METHOD_DISABLE=>_NOT_METHOD_DISABLE, XOOPS_NOTIFICATION_METHOD_PM=>_NOT_METHOD_PM, XOOPS_NOTIFICATION_METHOD_EMAIL=>_NOT_METHOD_EMAIL));
  196.     $notify_mode_select = new XoopsFormSelect(_NOT_NOTIFYMODE, 'notify_mode', $xoopsUser->getVar('notify_mode'));
  197.     $notify_mode_select->addOptionArray(array(XOOPS_NOTIFICATION_MODE_SENDALWAYS=>_NOT_MODE_SENDALWAYS, XOOPS_NOTIFICATION_MODE_SENDONCETHENDELETE=>_NOT_MODE_SENDONCE, XOOPS_NOTIFICATION_MODE_SENDONCETHENWAIT=>_NOT_MODE_SENDONCEPERLOGIN));
  198.     $bio_tarea = new XoopsFormTextArea(_US_EXTRAINFO, 'bio', $xoopsUser->getVar('bio', 'E'));
  199.     $cookie_radio_value = empty($_COOKIE[$xoopsConfig['usercookie']]) ? 0 : 1;
  200.     $cookie_radio = new XoopsFormRadioYN(_US_USECOOKIE, 'usecookie', $cookie_radio_value, _YES, _NO);
  201.     $pwd_text = new XoopsFormPassword('', 'password', 10, 32);
  202.     $pwd_text2 = new XoopsFormPassword('', 'vpass', 10, 32);
  203.     $pwd_tray = new XoopsFormElementTray(_US_PASSWORD.'<br />'._US_TYPEPASSTWICE);
  204.     $pwd_tray->addElement($pwd_text);
  205.     $pwd_tray->addElement($pwd_text2);
  206.     $mailok_radio = new XoopsFormRadioYN(_US_MAILOK, 'user_mailok', $xoopsUser->getVar('user_mailok'));
  207.     $uid_hidden = new XoopsFormHidden('uid', $xoopsUser->getVar('uid'));
  208.     $op_hidden = new XoopsFormHidden('op', 'saveuser');
  209.     $submit_button = new XoopsFormButton('', 'submit', _US_SAVECHANGES, 'submit');
  210.  
  211.     $form->addElement($timezone_select);
  212.     $form->addElement($icq_text);
  213.     $form->addElement($aim_text);
  214.     $form->addElement($yim_text);
  215.     $form->addElement($msnm_text);
  216.     $form->addElement($location_text);
  217.     $form->addElement($occupation_text);
  218.     $form->addElement($interest_text);
  219.     $form->addElement($sig_tray);
  220.     $form->addElement($umode_select);
  221.     $form->addElement($uorder_select);
  222.     $form->addElement($notify_method_select);
  223.     $form->addElement($notify_mode_select);
  224.     $form->addElement($bio_tarea);
  225.     $form->addElement($pwd_tray);
  226.     $form->addElement($cookie_radio);
  227.     $form->addElement($mailok_radio);
  228.     $form->addElement($uid_hidden);
  229.     $form->addElement($op_hidden);
  230.     $form->addElement($token_hidden);
  231.     $form->addElement($submit_button);
  232.     if ($xoopsConfigUser['allow_chgmail'] == 1) {
  233.         $form->setRequired($email_text);
  234.     }
  235.     $form->display();
  236.     include XOOPS_ROOT_PATH.'/footer.php';
  237. }
  238.  
  239.  
  240. if ($op == 'avatarform') {
  241.     include XOOPS_ROOT_PATH.'/header.php';
  242.     echo '<a href="userinfo.php?uid='.$xoopsUser->getVar('uid').'">'. _US_PROFILE .'</a> <span style="font-weight:bold;">»»</span> '. _US_UPLOADMYAVATAR .'<br /><br />';
  243.     $oldavatar = $xoopsUser->getVar('user_avatar');
  244.     if (!empty($oldavatar) && $oldavatar != 'blank.gif') {
  245.         echo '<div style="text-align:center;"><h4 style="color:#ff0000; font-weight:bold;">'._US_OLDDELETED.'</h4>';
  246.         echo '<img src="'.XOOPS_UPLOAD_URL.'/'.$oldavatar.'" alt="" /></div>';
  247.     }
  248.     if ($xoopsConfigUser['avatar_allow_upload'] == 1 && $xoopsUser->getVar('posts') >= $xoopsConfigUser['avatar_minposts']) {
  249.         include_once 'class/xoopsformloader.php';
  250.         $form = new XoopsThemeForm(_US_UPLOADMYAVATAR, 'uploadavatar', 'edituser.php', 'post', true);
  251.         $form->setExtra('enctype="multipart/form-data"');
  252.         $form->addElement(new XoopsFormLabel(_US_MAXPIXEL, $xoopsConfigUser['avatar_width'].' x '.$xoopsConfigUser['avatar_height']));
  253.         $form->addElement(new XoopsFormLabel(_US_MAXIMGSZ, $xoopsConfigUser['avatar_maxsize']));
  254.         $form->addElement(new XoopsFormFile(_US_SELFILE, 'avatarfile', $xoopsConfigUser['avatar_maxsize']), true);
  255.         $form->addElement(new XoopsFormHidden('op', 'avatarupload'));
  256.         $form->addElement(new XoopsFormHidden('uid', $xoopsUser->getVar('uid')));
  257.         $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
  258.             $form->display();
  259.     }
  260.     $avatar_handler =& xoops_gethandler('avatar');
  261.     $form2 = new XoopsThemeForm(_US_CHOOSEAVT, 'uploadavatar', 'edituser.php', 'post', true);
  262.     $avatar_select = new XoopsFormSelect('', 'user_avatar', $xoopsUser->getVar('user_avatar'));
  263.     $avatar_select->addOptionArray($avatar_handler->getList('S'));
  264.     $avatar_select->setExtra("onchange='showImgSelected(\"avatar\", \"user_avatar\", \"uploads\", \"\", \"".XOOPS_URL."\")'");
  265.     $avatar_tray = new XoopsFormElementTray(_US_AVATAR, ' ');
  266.     $avatar_tray->addElement($avatar_select);
  267.     $avatar_tray->addElement(new XoopsFormLabel('', "<img src='".XOOPS_UPLOAD_URL."/".$xoopsUser->getVar("user_avatar", "E")."' name='avatar' id='avatar' alt='' /> <a href=\"javascript:openWithSelfMain('".XOOPS_URL."/misc.php?action=showpopups&type=avatars','avatars',600,400);\">"._LIST."</a>"));
  268.     $form2->addElement($avatar_tray);
  269.     $form2->addElement(new XoopsFormHidden('uid', $xoopsUser->getVar('uid')));
  270.     $form2->addElement(new XoopsFormHidden('op', 'avatarchoose'));
  271.     $form2->addElement(new XoopsFormButton('', 'submit2', _SUBMIT, 'submit'));
  272.     $form2->display();
  273.     include XOOPS_ROOT_PATH.'/footer.php';
  274. }
  275.  
  276. if ($op == 'avatarupload') {
  277.     if (!$GLOBALS['xoopsSecurity']->check()) {
  278.         redirect_header('index.php',3,_US_NOEDITRIGHT."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
  279.         exit;
  280.     }
  281.     $xoops_upload_file = array();
  282.     $uid = 0;
  283.     if (!empty($_POST['xoops_upload_file']) && is_array($_POST['xoops_upload_file'])){
  284.         $xoops_upload_file = $_POST['xoops_upload_file'];
  285.     }
  286.     if (!empty($_POST['uid'])) {
  287.         $uid = intval($_POST['uid']);
  288.     }
  289.     if (empty($uid) || $xoopsUser->getVar('uid') != $uid ) {
  290.         redirect_header('index.php',3,_US_NOEDITRIGHT);
  291.         exit();
  292.     }
  293.     if ($xoopsConfigUser['avatar_allow_upload'] == 1 && $xoopsUser->getVar('posts') >= $xoopsConfigUser['avatar_minposts']) {
  294.         include_once XOOPS_ROOT_PATH.'/class/uploader.php';
  295.         $uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png'), $xoopsConfigUser['avatar_maxsize'], $xoopsConfigUser['avatar_width'], $xoopsConfigUser['avatar_height']);
  296.         if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
  297.             $uploader->setPrefix('cavt');
  298.             if ($uploader->upload()) {
  299.                 $avt_handler =& xoops_gethandler('avatar');
  300.                 $avatar =& $avt_handler->create();
  301.                 $avatar->setVar('avatar_file', $uploader->getSavedFileName());
  302.                 $avatar->setVar('avatar_name', $xoopsUser->getVar('uname'));
  303.                 $avatar->setVar('avatar_mimetype', $uploader->getMediaType());
  304.                 $avatar->setVar('avatar_display', 1);
  305.                 $avatar->setVar('avatar_type', 'C');
  306.                 if (!$avt_handler->insert($avatar)) {
  307.                     @unlink($uploader->getSavedDestination());
  308.                 } else {
  309.                     $oldavatar = $xoopsUser->getVar('user_avatar');
  310.                     if (!empty($oldavatar) && preg_match("/^cavt/", strtolower($oldavatar))) {
  311.                         $avatars =& $avt_handler->getObjects(new Criteria('avatar_file', $oldavatar));
  312.                         if (!empty($avatars) && count($avatars) == 1 && is_object($avatars[0])) {
  313.                             $avt_handler->delete($avatars[0]);
  314.                             $oldavatar_path = str_replace("\\", "/", realpath(XOOPS_UPLOAD_PATH.'/'.$oldavatar));
  315.                             if (0 === strpos($oldavatar_path, XOOPS_UPLOAD_PATH) && is_file($oldavatar_path)) {
  316.                                 unlink($oldavatar_path);
  317.                             }
  318.                         }
  319.                     }
  320.                     $sql = sprintf("UPDATE %s SET user_avatar = %s WHERE uid = %u", $xoopsDB->prefix('users'), $xoopsDB->quoteString($uploader->getSavedFileName()), $xoopsUser->getVar('uid'));
  321.                     $xoopsDB->query($sql);
  322.                     $avt_handler->addUser($avatar->getVar('avatar_id'), $xoopsUser->getVar('uid'));
  323.                     redirect_header('userinfo.php?t='.time().'&uid='.$xoopsUser->getVar('uid'),0, _US_PROFUPDATED);
  324.                 }
  325.             }
  326.         }
  327.         redirect_header("edituser.php?op=avatarform", 3, $uploader->getErrors());
  328.     }
  329. }
  330.  
  331. if ($op == 'avatarchoose') {
  332.     if (!$GLOBALS['xoopsSecurity']->check()) {
  333.         redirect_header('index.php',3,_US_NOEDITRIGHT."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
  334.         exit;
  335.     }
  336.     $uid = 0;
  337.     if (!empty($_POST['uid'])) {
  338.         $uid = intval($_POST['uid']);
  339.     }
  340.     if (empty($uid) || $xoopsUser->getVar('uid') != $uid ) {
  341.         redirect_header('index.php', 3, _US_NOEDITRIGHT);
  342.         exit();
  343.     }
  344.     $user_avatar = '';
  345.     $avt_handler =& xoops_gethandler('avatar');
  346.     if (!empty($_POST['user_avatar'])) {
  347.         $user_avatar = $myts->addSlashes( trim($_POST['user_avatar']) );
  348.         $criteria_avatar = new CriteriaCompo(new Criteria('avatar_file', $user_avatar));
  349.         $criteria_avatar->add(new Criteria('avatar_type', "S"));
  350.         $avatars =& $avt_handler->getObjects($criteria_avatar);
  351.         if (!is_array($avatars) || !count($avatars)) {
  352.             $user_avatar = 'blank.gif';
  353.         }
  354.         unset($avatars, $criteria_avatar);
  355.     }
  356.     $user_avatarpath = str_replace("\\", "/", realpath(XOOPS_UPLOAD_PATH.'/'.$user_avatar));
  357.     if (0 === strpos($user_avatarpath, XOOPS_UPLOAD_PATH) && is_file($user_avatarpath)) {
  358.         $oldavatar = $xoopsUser->getVar('user_avatar');
  359.         $xoopsUser->setVar('user_avatar', $user_avatar);
  360.         $member_handler =& xoops_gethandler('member');
  361.         if (!$member_handler->insertUser($xoopsUser)) {
  362.             include XOOPS_ROOT_PATH.'/header.php';
  363.             echo $xoopsUser->getHtmlErrors();
  364.             include XOOPS_ROOT_PATH.'/footer.php';
  365.             exit();
  366.         }
  367.         if ($oldavatar && preg_match("/^cavt/", strtolower($oldavatar))) {
  368.             $avatars =& $avt_handler->getObjects(new Criteria('avatar_file', $oldavatar));
  369.             if (!empty($avatars) && count($avatars) == 1 && is_object($avatars[0])) {
  370.                 $avt_handler->delete($avatars[0]);
  371.                 $oldavatar_path = str_replace("\\", "/", realpath(XOOPS_UPLOAD_PATH.'/'.$oldavatar));
  372.                 if (0 === strpos($oldavatar_path, XOOPS_UPLOAD_PATH) && is_file($oldavatar_path)) {
  373.                     unlink($oldavatar_path);
  374.                 }
  375.             }
  376.         }
  377.         if ($user_avatar != 'blank.gif') {
  378.             $avatars =& $avt_handler->getObjects(new Criteria('avatar_file', $user_avatar));
  379.             if (is_object($avatars[0])) {
  380.                 $avt_handler->addUser($avatars[0]->getVar('avatar_id'), $xoopsUser->getVar('uid'));
  381.             }
  382.         }
  383.     }
  384.     redirect_header('userinfo.php?uid='.$uid, 0, _US_PROFUPDATED);
  385. }
  386. ?>