Changeset 1060 in ExiteCMS for trunk/edit_profile.php


Ignore:
Timestamp:
11/05/07 21:36:09 (5 years ago)
Author:
hverton
Message:

Added a feature to handle invalid member email addresses. Once a user has been marked to have an invalid address, a login will redirect to the edit_profile module and the user will be prompted to correct the address. If this doesn't happen within 90 days, the user account will be deactivated and will disappear from the member lists. The account is not deleted or disabled, a login will reactivate the account again (and the 90 day countdown timer will start again).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/edit_profile.php

    r1024 r1060  
    1919$variables = array(); 
    2020 
     21// members only function 
     22if (!iMEMBER) fallback(BASEDIR."index.php"); 
     23 
    2124// load the DNS functions include 
    2225include PATH_INCLUDES."dns_functions.php"; 
     
    4952    if ($data = dbarray($result)) { 
    5053        if ($data['locale_name'] != $settings['locale']) { 
    51             die('setting locale cookie: '.$data['locale_code']); 
     54            die('TODO: setting locale cookie: '.$data['locale_code']); 
    5255            setcookie("locale", $data['locale_code'], time() + 31536000, "/", "", "0"); 
    5356        } 
     
    186189        } 
    187190        if ($user_newpassword != "") { $newpass = " user_password=md5(md5('$user_newpassword')), "; } else { $newpass = " "; } 
    188         $result = dbquery("UPDATE ".$db_prefix."users SET user_name='$username', user_fullname='$user_fullname', ".$newpass."user_email='".$_POST['user_email']."', user_hide_email='$user_hide_email', user_location='$user_location', user_birthdate='$user_birthdate', user_aim='$user_aim', user_icq='$user_icq', user_msn='$user_msn', user_yahoo='$user_yahoo', user_web='$user_web', user_forum_fullscreen='$user_forum_fullscreen', user_newsletters='$user_newsletters', user_theme='$user_theme', user_offset='$user_offset', ".$set_avatar."user_sig='$user_sig' WHERE user_id='".$this_userdata['user_id']."'"); 
     191        $result = dbquery("UPDATE ".$db_prefix."users SET user_name='$username', user_fullname='$user_fullname', ".$newpass."user_email='".$_POST['user_email']."', user_bad_email = '0', user_hide_email='$user_hide_email', user_location='$user_location', user_birthdate='$user_birthdate', user_aim='$user_aim', user_icq='$user_icq', user_msn='$user_msn', user_yahoo='$user_yahoo', user_web='$user_web', user_forum_fullscreen='$user_forum_fullscreen', user_newsletters='$user_newsletters', user_theme='$user_theme', user_offset='$user_offset', ".$set_avatar."user_sig='$user_sig' WHERE user_id='".$this_userdata['user_id']."'"); 
    189192        if ($user_theme != $userdata['user_theme']) redirect(FUSION_SELF."?status=1"); 
    190193        $result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='".$this_userdata['user_id']."'"); 
     
    203206} 
    204207 
    205 if (iMEMBER) { 
    206     if ($this_userdata['user_birthdate']!="0000-00-00") { 
    207         $user_birthdate = explode("-", $this_userdata['user_birthdate']); 
    208         $variables['user_day'] = number_format($user_birthdate['2']); 
    209         $variables['user_month'] = number_format($user_birthdate['1']); 
    210         $variables['user_year'] = $user_birthdate['0']; 
    211     } else { 
    212         $variables['user_day'] = 0; $variables['user_month'] = 0; $variables['user_year'] = 0; 
    213     } 
    214     if (!isset($this_userdata['user_fullname']) or empty($this_userdata['user_fullname'])) { 
    215         $this_userdata['user_fullname'] = $this_userdata['user_name']; 
    216     } 
    217     // generate a list of available themes 
    218     $theme_files = makefilelist(PATH_THEMES, ".|..|.svn", true, "folders", $this_userdata['user_level'] >= 102); 
    219     array_unshift($theme_files, "Default"); 
    220     $variables['theme_files'] = $theme_files; 
    221   
    222     // check if the user's avatar exists 
    223     if (!file_exists(PATH_IMAGES_AV.$this_userdata['user_avatar'])) $this_userdata['user_avatar'] = "imagenotfound.jpg"; 
    224     $variables['avatar'] = array('size' => parsebytesize(30720), 'x' => 100, 'y' => 100); 
    225     $variables['timezone'] = sprintf($locale['u023'], "GMT ".(date('O')=="+0000"?"":date('O'))); 
    226     $variables['serveroffset'] = substr(date('O'),0,1).(substr(date('O'),1)/100); 
    227 } 
     208// called because of a profile setting check? 
     209if (isset($check)) { 
     210    switch ($check) { 
     211        case "email": 
     212            // define the search body panel variables 
     213            $check_message = sprintf($locale['491'], isset($value)?$value:"?").$locale['499']; 
     214            break; 
     215    } 
     216} else { 
     217    // any profile checks we want to do? 
     218    if ($this_userdata['user_bad_email']) { 
     219        $value = 90 - intval((time() - $this_userdata['user_bad_email']) / 86400); 
     220        $check_message = sprintf($locale['491'], isset($value)?$value:"?").$locale['499']; 
     221    } 
     222} 
     223 
     224if (isset($check_message)) { 
     225    $template_panels[] = array('type' => 'body', 'name' => 'edit_profile_message', 'title' => $locale['424'], 'template' => '_message_table_panel.tpl', 'locale' => PATH_LOCALE.LOCALESET."members-profile.php"); 
     226    $template_variables['edit_profile_message'] = array('message' => $check_message, 'bold' => true); 
     227} 
     228 
     229if ($this_userdata['user_birthdate']!="0000-00-00") { 
     230    $user_birthdate = explode("-", $this_userdata['user_birthdate']); 
     231    $variables['user_day'] = number_format($user_birthdate['2']); 
     232    $variables['user_month'] = number_format($user_birthdate['1']); 
     233    $variables['user_year'] = $user_birthdate['0']; 
     234} else { 
     235    $variables['user_day'] = 0; $variables['user_month'] = 0; $variables['user_year'] = 0; 
     236} 
     237if (!isset($this_userdata['user_fullname']) or empty($this_userdata['user_fullname'])) { 
     238    $this_userdata['user_fullname'] = $this_userdata['user_name']; 
     239} 
     240// generate a list of available themes 
     241$theme_files = makefilelist(PATH_THEMES, ".|..|.svn", true, "folders", $this_userdata['user_level'] >= 102); 
     242array_unshift($theme_files, "Default"); 
     243$variables['theme_files'] = $theme_files; 
     244 
     245// check if the user's avatar exists 
     246if (!file_exists(PATH_IMAGES_AV.$this_userdata['user_avatar'])) $this_userdata['user_avatar'] = "imagenotfound.jpg"; 
     247$variables['avatar'] = array('size' => parsebytesize(30720), 'x' => 100, 'y' => 100); 
     248$variables['timezone'] = sprintf($locale['u023'], "GMT ".(date('O')=="+0000"?"":date('O'))); 
     249$variables['serveroffset'] = substr(date('O'),0,1).(substr(date('O'),1)/100); 
    228250 
    229251$variables['this_userdata'] = $this_userdata; 
Note: See TracChangeset for help on using the changeset viewer.