2001-02-17 08:37:32 +00:00
< ? php
2001-04-17 07:14:50 +00:00
/***************************************************************************
* profile . php
* -------------------
* begin : Saturday , Feb 13 , 2001
* copyright : ( C ) 2001 The phpBB Group
* email : support @ phpbb . com
*
* $Id $
*
*
***************************************************************************/
2001-02-17 08:37:32 +00:00
2001-08-30 22:20:23 +00:00
/***************************************************************************
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
***************************************************************************/
2001-07-13 16:14:37 +00:00
$phpbb_root_path = " ./ " ;
include ( $phpbb_root_path . 'extension.inc' );
include ( $phpbb_root_path . 'common.' . $phpEx );
2001-09-25 18:18:47 +00:00
include ( $phpbb_root_path . 'includes/post.' . $phpEx );
include ( $phpbb_root_path . 'includes/bbcode.' . $phpEx );
2001-02-17 08:37:32 +00:00
2001-04-15 14:14:56 +00:00
//
// Start session management
//
$userdata = session_pagestart ( $user_ip , PAGE_PROFILE , $session_length );
init_userprefs ( $userdata );
//
// End session management
//
2001-09-09 23:22:29 +00:00
2001-09-25 18:18:47 +00:00
// -----------------------
2001-09-09 23:22:29 +00:00
// Page specific functions
//
//
// Check to see if email address is banned
// or already present in the DB
//
function validate_email ( $email )
{
global $db ;
if ( $email != " " )
{
2001-09-25 18:18:47 +00:00
if ( preg_match ( " /^[a-z0-9 \ . \ -_]+@[a-z0-9 \ -_]+ \ .([a-z0-9 \ -_]+ \ .)?[a-z]+ $ /is " , $email ) )
2001-09-09 23:22:29 +00:00
{
2001-09-25 18:18:47 +00:00
$sql = " SELECT ban_email
FROM " . BANLIST_TABLE;
if ( ! $result = $db -> sql_query ( $sql ))
{
message_die ( GENERAL_ERROR , " Couldn't obtain email ban information. " , " " , __LINE__ , __FILE__ , $sql );
}
$ban_email_list = $db -> sql_fetchrowset ( $result );
for ( $i = 0 ; $i < count ( $ban_email_list ); $i ++ )
{
$match_email = str_replace ( " *@ " , " .*@ " , $ban_email_list [ $i ][ 'ban_email' ]);
if ( preg_match ( " /^ " . $match_email . " $ /is " , $email ) )
{
return ( 0 );
}
}
$sql = " SELECT user_email
FROM " . USERS_TABLE . "
WHERE user_email = '" . $email . "' " ;
if ( ! $result = $db -> sql_query ( $sql ))
{
message_die ( GENERAL_ERROR , " Couldn't obtain user email information. " , " " , __LINE__ , __FILE__ , $sql );
}
$email_taken = $db -> sql_fetchrow ( $result );
if ( $email_taken [ 'user_email' ] != " " )
2001-09-09 23:22:29 +00:00
{
return ( 0 );
}
2001-09-25 18:18:47 +00:00
return ( 1 );
2001-09-09 23:22:29 +00:00
}
2001-09-25 18:18:47 +00:00
else
2001-09-09 23:22:29 +00:00
{
return ( 0 );
}
}
else
{
return ( 0 );
}
}
2001-09-14 04:42:54 +00:00
//
// Does supplementary validation of optional profile fields. This expects common stuff like trim() and strip_tags()
// to have already been run. Params are passed by-ref, so we can set them to the empty string if they fail.
//
function validate_optional_fields ( & $icq , & $aim , & $msnm , & $yim , & $website , & $location , & $occupation , & $interests , & $sig )
{
// ICQ number has to be only numbers.
if ( ! preg_match ( " /^[0-9]+ $ / " , $icq ))
{
$icq = " " ;
}
// AIM address has to have length >= 2.
if ( strlen ( $aim ) < 2 )
{
$aim = " " ;
}
// MSNM address has to have length >= 2.
if ( strlen ( $msnm ) < 2 )
{
$msnm = " " ;
}
// YIM address has to have length >= 2.
if ( strlen ( $yim ) < 2 )
{
$yim = " " ;
}
// website has to start with http://, followed by something with length at least 3 that
// contains at least one dot.
2001-09-25 18:18:47 +00:00
if ( $website != " " )
2001-09-14 04:42:54 +00:00
{
2001-09-25 18:18:47 +00:00
if ( ! ereg ( " ^http \ : \ / \ / " , $website ) )
{
$website = " http:// " . $website ;
}
if ( ! preg_match ( " #^http \\ : \\ / \\ /[a-z0-9]+ \ .[a-z0-9]+#i " , $website ))
{
$website = " " ;
}
2001-09-14 04:42:54 +00:00
}
// location has to have length >= 2.
if ( strlen ( $location ) < 2 )
{
$location = " " ;
}
// occupation has to have length >= 2.
if ( strlen ( $occupation ) < 2 )
{
$occupation = " " ;
}
// interests has to have length >= 2.
if ( strlen ( $interests ) < 2 )
{
$interests = " " ;
}
// sig has to have length >= 2.
if ( strlen ( $sig ) < 2 )
{
$sig = " " ;
}
return ;
}
2001-09-09 23:22:29 +00:00
//
// End page specific functions
//
2001-05-28 16:05:57 +00:00
//
// Start of program proper
2001-06-03 23:10:07 +00:00
//
2001-05-17 14:48:39 +00:00
if ( isset ( $HTTP_GET_VARS [ 'mode' ]) || isset ( $HTTP_POST_VARS [ 'mode' ]))
2001-03-19 01:35:04 +00:00
{
2001-05-17 14:48:39 +00:00
$mode = ( $HTTP_GET_VARS [ 'mode' ]) ? $HTTP_GET_VARS [ 'mode' ] : $HTTP_POST_VARS [ 'mode' ];
//
// Begin page proper
//
2001-09-25 18:18:47 +00:00
if ( $mode == " viewprofile " )
2001-05-17 14:48:39 +00:00
{
2001-07-04 19:36:32 +00:00
//
// Output page header and
// profile_view template
//
2001-08-18 12:38:05 +00:00
$page_title = $lang [ 'Viewing_profile' ];
2001-07-13 16:14:37 +00:00
include ( $phpbb_root_path . 'includes/page_header.' . $phpEx );
2001-07-04 19:36:32 +00:00
$template -> set_filenames ( array (
" body " => " profile_view_body.tpl " ,
" jumpbox " => " jumpbox.tpl " )
);
2001-07-31 20:06:50 +00:00
2001-07-04 19:36:32 +00:00
$jumpbox = make_jumpbox ();
$template -> assign_vars ( array (
2001-08-13 01:07:14 +00:00
" L_GO " => $lang [ 'Go' ],
" L_JUMP_TO " => $lang [ 'Jump_to' ],
" L_SELECT_FORUM " => $lang [ 'Select_forum' ],
2001-09-14 00:21:07 +00:00
2001-09-07 12:32:47 +00:00
" S_JUMPBOX_LIST " => $jumpbox ,
" S_JUMPBOX_ACTION " => append_sid ( " viewforum. $phpEx " ))
2001-07-04 19:36:32 +00:00
);
$template -> assign_var_from_handle ( " JUMPBOX " , " jumpbox " );
2001-07-31 20:06:50 +00:00
2001-07-04 19:36:32 +00:00
//
// End header
//
2001-09-25 18:18:47 +00:00
if ( ! $HTTP_GET_VARS [ POST_USERS_URL ] )
2001-07-04 19:36:32 +00:00
{
2001-09-25 18:18:47 +00:00
// CHANGE THIS!
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " You must supply the user ID number of the user you want to view " , " " , __LINE__ , __FILE__ );
}
$profiledata = get_userdata_from_id ( $HTTP_GET_VARS [ POST_USERS_URL ]);
2001-05-17 14:48:39 +00:00
2001-07-04 19:36:32 +00:00
//
// Calculate the number of days this user has been a member ($memberdays)
// Then calculate their posts per day
//
$regdate = $profiledata [ 'user_regdate' ];
2001-05-17 14:48:39 +00:00
2001-09-25 23:36:11 +00:00
$memberdays = max ( 1 , round ( ( time () - $regdate ) / 86400 ));
2001-07-04 19:36:32 +00:00
$posts_per_day = sprintf ( " %.2f " , $profiledata [ 'user_posts' ] / $memberdays );
2001-05-17 14:48:39 +00:00
2001-07-04 19:36:32 +00:00
// Get the users percentage of total posts
if ( $profiledata [ 'user_posts' ] != 0 )
{
$total_posts = get_db_stat ( " postcount " );
$percentage = sprintf ( " %.2f " , ( $profiledata [ 'user_posts' ] / $total_posts ) * 100 );
}
else
{
$percentage = 0 ;
}
2001-09-25 18:18:47 +00:00
if ( $profiledata [ 'user_viewemail' ] )
2001-07-04 19:36:32 +00:00
{
// Replace the @ with 'at'. Some anti-spam mesures.
$email_addr = str_replace ( " @ " , " at " , $profiledata [ 'user_email' ]);
$email = " <a href= \" mailto: $email_addr\ " > $email_addr </ a > " ;
2001-09-25 18:18:47 +00:00
$email_img = " <a href= \" mailto: $email_addr\ " >< img src = \ " " . $images [ 'icon_email' ] . " \" alt= \" " . $lang [ 'Send_email' ] . " " . $profiledata [ 'username' ] . " \" border= \" 0 \" /></a> " ;
2001-07-04 19:36:32 +00:00
}
else
{
2001-09-25 18:18:47 +00:00
$email = " " ;
2001-07-31 20:06:50 +00:00
$email_img = " " ;
2001-07-04 19:36:32 +00:00
}
2001-07-09 20:26:33 +00:00
2001-09-17 19:48:40 +00:00
if ( $profiledata [ 'user_avatar' ] != " " && $profiledata [ 'user_id' ] != ANONYMOUS )
{
$avatar_img = ( eregi ( " http " , $profiledata [ 'user_avatar' ]) && $board_config [ 'allow_avatar_remote' ]) ? " <img src= \" " . $profiledata [ 'user_avatar' ] . " \" > " : " <img src= \" " . $board_config [ 'avatar_path' ] . " / " . $profiledata [ 'user_avatar' ] . " \" alt= \" \" /> " ;;
}
else
{
$avatar_img = " " ;
}
2001-07-20 17:46:29 +00:00
2001-09-17 19:38:08 +00:00
if ( ! empty ( $profiledata [ 'user_icq' ]) )
2001-07-09 20:26:33 +00:00
{
2001-09-27 09:48:37 +00:00
$icq_status_img = " <a href= \" http://wwp.icq.com/ " . $profiledata [ 'user_icq' ] . " #pager \" ><img src= \" http://online.mirabilis.com/scripts/online.dll?icq= " . $profiledata [ 'user_icq' ] . " &img=5 \" border= \" 0 \" alt= \" \" /></a> " ;
2001-07-09 20:26:33 +00:00
2001-09-27 09:48:37 +00:00
$icq_add_img = " <a href= \" http://wwp.icq.com/scripts/search.dll?to= " . $profiledata [ 'user_icq' ] . " \" ><img src= \" " . $images [ 'icon_icq' ] . " \" alt= \" " . $lang [ 'ICQ' ] . " \" border= \" 0 \" /></a> " ;
2001-07-09 20:26:33 +00:00
}
else
{
2001-07-20 17:30:17 +00:00
$icq_status_img = " " ;
$icq_add_img = " " ;
2001-07-09 20:26:33 +00:00
}
2001-07-31 20:06:50 +00:00
$aim_img = ( $profiledata [ 'user_aim' ]) ? " <a href= \" aim:goim?screenname= " . $profiledata [ 'user_aim' ] . " &message=Hello+Are+you+there? \" ><img src= \" " . $images [ 'icon_aim' ] . " \" border= \" 0 \" alt= \" " . $lang [ 'AIM' ] . " \" /></a> " : " " ;
2001-07-09 20:26:33 +00:00
2001-07-31 20:06:50 +00:00
$msnm_img = ( $profiledata [ 'user_msnm' ]) ? " <a href= \" profile. $phpEx ?mode=viewprofile& " . POST_USERS_URL . " = $poster_id\ " >< img src = \ " " . $images [ 'icon_msnm' ] . " \" border= \" 0 \" alt= \" " . $lang [ 'MSNM' ] . " \" /></a> " : " " ;
2001-07-09 20:26:33 +00:00
2001-07-31 20:06:50 +00:00
$yim_img = ( $members [ $i ][ 'user_yim' ]) ? " <a href= \" http://edit.yahoo.com/config/send_webmesg?.target= " . $members [ $i ][ 'user_yim' ] . " &.src=pg \" ><img src= \" " . $images [ 'icon_yim' ] . " \" border= \" 0 \" alt= \" " . $lang [ 'YIM' ] . " \" /></a> " : " " ;
2001-07-09 20:26:33 +00:00
2001-09-17 00:42:17 +00:00
$search_img = " <a href= \" " . append_sid ( " search. $phpEx ?search_author= " . urlencode ( $profiledata [ 'username' ]) . " &showresults=topics " ) . " \" ><img src= \" " . $images [ 'icon_search' ] . " \" border= \" 0 \" alt= \" " . $lang [ 'Search_user_posts' ] . " \" /></a> " ;
$search = " <a href= \" " . append_sid ( " search. $phpEx ?search_author= " . urlencode ( $profiledata [ 'username' ]) . " &showresults=topics " ) . " \" > " . $lang [ 'Search_user_posts' ] . " </a> " ;
2001-07-20 17:30:17 +00:00
2001-09-25 18:18:47 +00:00
$www_img = ( $profiledata [ 'user_website' ]) ? " <a href= \" " . $profiledata [ 'user_website' ] . " \" ><img src= \" " . $images [ 'icon_www' ] . " \" alt= \" " . $lang [ 'Visit_website' ] . " \" border= \" 0 \" /></a> " : " " ;
2001-07-20 17:30:17 +00:00
2001-07-31 20:06:50 +00:00
$pm_img = " <a href= \" " . append_sid ( " privmsg. $phpEx ?mode=post& " . POST_USERS_URL . " = " . $profiledata [ 'user_id' ]) . " \" ><img src= \" " . $images [ 'icon_pm' ] . " \" alt= \" " . $lang [ 'Private_messaging' ] . " \" border= \" 0 \" /></a> " ;
2001-07-09 20:26:33 +00:00
2001-07-04 19:36:32 +00:00
$template -> assign_vars ( array (
2001-09-17 19:38:08 +00:00
" USERNAME " => $profiledata [ 'username' ],
2001-09-08 18:24:34 +00:00
" JOINED " => create_date ( $board_config [ 'default_dateformat' ], $profiledata [ 'user_regdate' ], $board_config [ 'board_timezone' ]),
2001-07-04 19:36:32 +00:00
" POSTS_PER_DAY " => $posts_per_day ,
" POSTS " => $profiledata [ 'user_posts' ],
" PERCENTAGE " => $percentage . " % " ,
" EMAIL " => $email ,
2001-08-13 01:07:14 +00:00
" EMAIL_IMG " => $email_img ,
" PM_IMG " => $pm_img ,
" UL_SEARCH " => $search ,
" SEARCH_IMG " => $search_img ,
" ICQ_ADD_IMG " => $icq_add_img ,
2001-07-20 17:30:17 +00:00
" ICQ_STATUS_IMG " => $icq_status_img ,
2001-09-17 19:38:08 +00:00
" AIM " => ( ( $profiledata [ 'user_aim' ]) ? $profiledata [ 'user_aim' ] : " " ),
2001-08-13 01:07:14 +00:00
" AIM_IMG " => $aim_img ,
2001-09-17 19:38:08 +00:00
" MSN " => ( ( $profiledata [ 'user_msnm' ]) ? $profiledata [ 'user_msnm' ] : " " ),
2001-08-13 01:07:14 +00:00
" MSN_IMG " => $msnm_img ,
2001-09-17 19:38:08 +00:00
" YIM " => ( ( $profiledata [ 'user_yim' ]) ? $profiledata [ 'user_yim' ] : " " ),
2001-08-13 01:07:14 +00:00
" YIM_IMG " => $yim_img ,
2001-09-17 19:38:08 +00:00
" WEBSITE " => ( ( $profiledata [ 'user_website' ]) ? $profiledata [ 'user_website' ] : " " ),
2001-08-13 01:07:14 +00:00
" WEBSITE_IMG " => $www_img ,
2001-09-17 19:38:08 +00:00
" LOCATION " => ( ( $profiledata [ 'user_from' ]) ? $profiledata [ 'user_from' ] : " " ),
" OCCUPATION " => ( ( $profiledata [ 'user_occ' ]) ? $profiledata [ 'user_occ' ] : " " ),
" INTERESTS " => ( ( $profiledata [ 'user_interests' ]) ? $profiledata [ 'user_interests' ] : " " ),
2001-07-20 17:46:29 +00:00
" AVATAR_IMG " => $avatar_img ,
2001-07-20 17:30:17 +00:00
" L_VIEWING_PROFILE " => $lang [ 'Viewing_profile_of' ],
" L_PER_DAY " => $lang [ 'posts_per_day' ],
" L_OF_TOTAL " => $lang [ 'of_total' ],
" L_CONTACT " => $lang [ 'Contact' ],
2001-08-13 01:07:14 +00:00
" L_EMAIL_ADDRESS " => $lang [ 'Email_address' ],
" L_EMAIL " => $lang [ 'Email' ],
" L_PM " => $lang [ 'Private_message' ],
2001-07-20 17:30:17 +00:00
" L_ICQ_NUMBER " => $lang [ 'ICQ' ],
" L_YAHOO " => $lang [ 'YIM' ],
" L_AIM " => $lang [ 'AIM' ],
" L_MESSENGER " => $lang [ 'MSNM' ],
" L_WEBSITE " => $lang [ 'Website' ],
" L_LOCATION " => $lang [ 'From' ],
" L_OCCUPATION " => $lang [ 'Occupation' ],
" L_INTERESTS " => $lang [ 'Interests' ],
2001-07-04 19:36:32 +00:00
2001-09-17 19:38:08 +00:00
" U_SEARCH_USER " => append_sid ( " search. $phpEx ?search_author= " . urlencode ( $profiledata [ 'username' ]) . " &showresults=topics " ),
2001-07-04 19:36:32 +00:00
" S_PROFILE_ACTION " => append_sid ( " profile. $phpEx " ))
);
$template -> pparse ( " body " );
2001-07-13 16:14:37 +00:00
include ( $phpbb_root_path . 'includes/page_tail.' . $phpEx );
2001-07-04 19:36:32 +00:00
}
else if ( $mode == " editprofile " || $mode == " register " )
{
2001-09-25 18:18:47 +00:00
if ( ! $userdata [ 'session_logged_in' ] && $mode == " editprofile " )
2001-07-04 19:36:32 +00:00
{
header ( append_sid ( " Location: login. $phpEx ?forward_page= $PHP_SELF &mode=editprofile " ));
}
2001-05-17 14:48:39 +00:00
2001-09-09 23:22:29 +00:00
$page_title = ( $mode == " editprofile " ) ? $lang [ 'Edit_profile' ] : $lang [ 'Register' ];
2001-07-04 19:36:32 +00:00
//
// Start processing for output
//
if ( $mode == " register " && ! isset ( $HTTP_POST_VARS [ 'agreed' ]) && ! isset ( $HTTP_GET_VARS [ 'agreed' ]))
{
if ( ! isset ( $HTTP_POST_VARS [ 'agreed' ]) && ! isset ( $HTTP_GET_VARS [ 'agreed' ]))
2001-05-04 23:51:52 +00:00
{
2001-07-04 19:36:32 +00:00
//
// Load agreement template since user has not yet
// agreed to registration conditions/coppa
//
2001-09-09 23:22:29 +00:00
include ( $phpbb_root_path . 'includes/page_header.' . $phpEx );
2001-07-04 19:36:32 +00:00
$template -> set_filenames ( array (
" body " => " agreement.tpl " ,
" jumpbox " => " jumpbox.tpl " )
);
2001-07-31 20:06:50 +00:00
2001-07-04 19:36:32 +00:00
$jumpbox = make_jumpbox ();
$template -> assign_vars ( array (
2001-08-13 01:07:14 +00:00
" L_GO " => $lang [ 'Go' ],
" L_JUMP_TO " => $lang [ 'Jump_to' ],
" L_SELECT_FORUM " => $lang [ 'Select_forum' ],
2001-09-14 00:21:07 +00:00
2001-09-07 12:32:47 +00:00
" S_JUMPBOX_LIST " => $jumpbox ,
" S_JUMPBOX_ACTION " => append_sid ( " viewforum. $phpEx " ))
2001-07-04 19:36:32 +00:00
);
$template -> assign_var_from_handle ( " JUMPBOX " , " jumpbox " );
2001-07-31 20:06:50 +00:00
2001-07-04 19:36:32 +00:00
$template -> assign_vars ( array (
" COPPA " => $coppa ,
2001-07-31 20:06:50 +00:00
" U_AGREE_OVER13 " => append_sid ( " profile. $phpEx ?mode=register&agreed=true " ),
" U_AGREE_UNDER13 " => append_sid ( " profile. $phpEx ?mode=register&agreed=true&coppa=true " ))
2001-07-04 19:36:32 +00:00
);
$template -> pparse ( " body " );
2001-07-13 16:14:37 +00:00
include ( $phpbb_root_path . 'includes/page_tail.' . $phpEx );
2001-05-04 23:51:52 +00:00
}
2001-07-04 19:36:32 +00:00
}
2001-09-25 18:18:47 +00:00
else if ( isset ( $HTTP_POST_VARS [ 'submit' ]) || $mode == " register " )
2001-07-04 19:36:32 +00:00
{
2001-09-25 18:18:47 +00:00
if ( $mode == " editprofile " )
2001-05-04 23:51:52 +00:00
{
2001-07-04 19:36:32 +00:00
$user_id = $HTTP_POST_VARS [ 'user_id' ];
2001-08-13 07:40:52 +00:00
$current_email = trim ( strip_tags ( htmlspecialchars ( $HTTP_POST_VARS [ 'current_email' ])));
2001-05-04 23:51:52 +00:00
}
2001-09-17 19:38:08 +00:00
$username = ( ! empty ( $HTTP_POST_VARS [ 'username' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'username' ])) : " " ;
2001-07-04 19:36:32 +00:00
$email = ( ! empty ( $HTTP_POST_VARS [ 'email' ])) ? trim ( strip_tags ( htmlspecialchars ( $HTTP_POST_VARS [ 'email' ]))) : " " ;
$password = ( ! empty ( $HTTP_POST_VARS [ 'password' ])) ? trim ( strip_tags ( htmlspecialchars ( $HTTP_POST_VARS [ 'password' ]))) : " " ;
$password_confirm = ( ! empty ( $HTTP_POST_VARS [ 'password_confirm' ])) ? trim ( strip_tags ( htmlspecialchars ( $HTTP_POST_VARS [ 'password_confirm' ]))) : " " ;
2001-09-17 21:00:06 +00:00
$icq = ( ! empty ( $HTTP_POST_VARS [ 'icq' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'icq' ])) : " " ;
2001-07-04 19:36:32 +00:00
$aim = ( ! empty ( $HTTP_POST_VARS [ 'aim' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'aim' ])) : " " ;
$msn = ( ! empty ( $HTTP_POST_VARS [ 'msn' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'msn' ])) : " " ;
$yim = ( ! empty ( $HTTP_POST_VARS [ 'yim' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'yim' ])) : " " ;
2001-05-17 14:48:39 +00:00
2001-07-04 19:36:32 +00:00
$website = ( ! empty ( $HTTP_POST_VARS [ 'website' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'website' ])) : " " ;
$location = ( ! empty ( $HTTP_POST_VARS [ 'location' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'location' ])) : " " ;
$occupation = ( ! empty ( $HTTP_POST_VARS [ 'occupation' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'occupation' ])) : " " ;
2001-07-13 16:14:37 +00:00
$interests = ( ! empty ( $HTTP_POST_VARS [ 'interests' ])) ? trim ( strip_tags ( $HTTP_POST_VARS [ 'interests' ])) : " " ;
$signature = ( ! empty ( $HTTP_POST_VARS [ 'signature' ])) ? trim ( strip_tags ( str_replace ( " <br /> " , " \n " , $HTTP_POST_VARS [ 'signature' ]))) : " " ;
2001-07-04 19:36:32 +00:00
2001-09-14 04:42:54 +00:00
// Run some validation on the optional fields. These are pass-by-ref, so they'll be changed to
// empty strings if they fail.
validate_optional_fields ( $icq , $aim , $msn , $yim , $website , $location , $occupation , $interests , $signature );
2001-09-25 18:18:47 +00:00
$viewemail = ( isset ( $HTTP_POST_VARS [ 'viewemail' ])) ? ( ( $HTTP_POST_VARS [ 'viewemail' ]) ? TRUE : 0 ) : 0 ;
$allowviewonline = ( isset ( $HTTP_POST_VARS [ 'hideonline' ])) ? ( ( $HTTP_POST_VARS [ 'hideonline' ]) ? 0 : TRUE ) : TRUE ;
$notifyreply = ( isset ( $HTTP_POST_VARS [ 'notifyreply' ])) ? ( ( $HTTP_POST_VARS [ 'notifyreply' ]) ? TRUE : 0 ) : 0 ;
$notifypm = ( isset ( $HTTP_POST_VARS [ 'notifypm' ])) ? ( ( $HTTP_POST_VARS [ 'notifypm' ]) ? TRUE : 0 ) : TRUE ;
$attachsig = ( isset ( $HTTP_POST_VARS [ 'attachsig' ])) ? ( ( $HTTP_POST_VARS [ 'attachsig' ]) ? TRUE : 0 ) : 0 ;
2001-07-04 19:36:32 +00:00
2001-09-25 18:18:47 +00:00
$allowhtml = ( isset ( $HTTP_POST_VARS [ 'allowhtml' ])) ? ( ( $HTTP_POST_VARS [ 'allowhtml' ]) ? TRUE : 0 ) : $userdata [ 'user_allowhtml' ];
$allowbbcode = ( isset ( $HTTP_POST_VARS [ 'allowbbcode' ])) ? ( ( $HTTP_POST_VARS [ 'allowbbcode' ]) ? TRUE : 0 ) : $userdata [ 'user_allowbbcode' ];
$allowsmilies = ( isset ( $HTTP_POST_VARS [ 'allowsmilies' ])) ? ( ( $HTTP_POST_VARS [ 'allowsmilies' ]) ? TRUE : 0 ) : $userdata [ 'user_allowsmilies' ];
2001-07-04 19:36:32 +00:00
2001-09-25 18:18:47 +00:00
$user_style = ( isset ( $HTTP_POST_VARS [ 'style' ]) ) ? $HTTP_POST_VARS [ 'style' ] : $board_config [ 'default_style' ];
2001-09-09 23:22:29 +00:00
2001-07-04 19:36:32 +00:00
$user_lang = ( $HTTP_POST_VARS [ 'language' ]) ? $HTTP_POST_VARS [ 'language' ] : $board_config [ 'default_lang' ];
2001-09-08 18:24:34 +00:00
$user_timezone = ( isset ( $HTTP_POST_VARS [ 'timezone' ])) ? $HTTP_POST_VARS [ 'timezone' ] : $board_config [ 'board_timezone' ];
2001-07-04 19:36:32 +00:00
$user_dateformat = ( $HTTP_POST_VARS [ 'dateformat' ]) ? trim ( $HTTP_POST_VARS [ 'dateformat' ]) : $board_config [ 'default_dateformat' ];
2001-08-18 12:38:05 +00:00
$user_avatar_remoteurl = ( ! empty ( $HTTP_POST_VARS [ 'avatarremoteurl' ])) ? $HTTP_POST_VARS [ 'avatarremoteurl' ] : " " ;
2001-07-04 19:36:32 +00:00
$user_avatar_url = ( ! empty ( $HTTP_POST_VARS [ 'avatarurl' ])) ? $HTTP_POST_VARS [ 'avatarurl' ] : " " ;
$user_avatar_loc = ( $HTTP_POST_FILES [ 'avatar' ][ 'tmp_name' ] != " none " ) ? $HTTP_POST_FILES [ 'avatar' ][ 'tmp_name' ] : " " ;
$user_avatar_name = ( ! empty ( $HTTP_POST_FILES [ 'avatar' ][ 'name' ])) ? $HTTP_POST_FILES [ 'avatar' ][ 'name' ] : " " ;
$user_avatar_size = ( ! empty ( $HTTP_POST_FILES [ 'avatar' ][ 'size' ])) ? $HTTP_POST_FILES [ 'avatar' ][ 'size' ] : 0 ;
$user_avatar_type = ( ! empty ( $HTTP_POST_FILES [ 'avatar' ][ 'type' ])) ? $HTTP_POST_FILES [ 'avatar' ][ 'type' ] : " " ;
$user_avatar = ( empty ( $user_avatar_loc ) && $mode == " editprofile " ) ? $userdata [ 'user_avatar' ] : " " ;
}
2001-07-04 23:26:19 +00:00
2001-07-04 19:36:32 +00:00
if ( isset ( $HTTP_POST_VARS [ 'submit' ]))
{
$error = FALSE ;
$passwd_sql = " " ;
if ( $mode == " editprofile " )
2001-05-04 23:51:52 +00:00
{
2001-07-04 19:36:32 +00:00
if ( $user_id != $userdata [ 'user_id' ])
{
$error = TRUE ;
$error_msg = $lang [ 'Wrong_Profile' ];
}
2001-05-04 23:51:52 +00:00
}
2001-07-04 19:36:32 +00:00
else if ( $mode == " register " )
2001-05-04 23:51:52 +00:00
{
2001-09-25 18:18:47 +00:00
$coppa = ( ! $HTTP_POST_VARS [ 'coppa' ] && ! $HTTP_GET_VARS [ 'coppa' ]) ? 0 : TRUE ;
2001-04-17 07:14:50 +00:00
2001-09-25 18:18:47 +00:00
if ( empty ( $username ) || empty ( $password ) || empty ( $password_confirm ) || empty ( $email ) )
2001-07-04 19:36:32 +00:00
{
$error = TRUE ;
$error_msg = $lang [ 'Fields_empty' ];
}
2001-05-17 14:48:39 +00:00
}
2001-09-25 18:18:47 +00:00
if ( ! empty ( $password ) && ! empty ( $password_confirm ) )
2001-03-19 01:35:04 +00:00
{
2001-08-13 03:16:35 +00:00
// Awww, the user wants to change their password, isn't that cute..
2001-07-04 19:36:32 +00:00
if ( $password != $password_confirm )
2001-06-03 23:10:07 +00:00
{
$error = TRUE ;
2001-07-04 19:36:32 +00:00
$error_msg = $lang [ 'Password_mismatch' ];
}
else
{
$password = md5 ( $password );
$passwd_sql = " user_password = ' $password ', " ;
2001-06-03 23:10:07 +00:00
}
2001-07-04 19:36:32 +00:00
}
2001-09-25 18:18:47 +00:00
else if ( ( $password && ! $password_confirm ) || ( ! $password && $password_confirm ) )
2001-07-04 19:36:32 +00:00
{
$error = TRUE ;
$error_msg = $lang [ 'Password_mismatch' ];
}
2001-06-03 23:10:07 +00:00
2001-09-25 18:18:47 +00:00
//
// Do a ban check on this email address
//
2001-08-24 15:47:14 +00:00
if ( $email != $userdata [ 'user_email' ] || $mode == " register " )
{
if ( ! validate_email ( $email ))
{
$error = TRUE ;
if ( isset ( $error_msg ))
{
$error_msg .= " <br /> " ;
}
$error_msg .= $lang [ 'Sorry_banned_or_taken_email' ];
}
}
2001-07-04 19:36:32 +00:00
if ( $board_config [ 'allow_namechange' ] || $mode == " register " )
{
if ( $username != $userdata [ 'username' ] || $mode == " register " )
2001-03-19 01:35:04 +00:00
{
2001-07-04 19:36:32 +00:00
if ( ! validate_username ( $username ))
2001-03-19 01:35:04 +00:00
{
2001-05-17 14:48:39 +00:00
$error = TRUE ;
2001-07-04 19:36:32 +00:00
if ( isset ( $error_msg ))
{
$error_msg .= " <br /> " ;
}
$error_msg .= $lang [ 'Invalid_username' ];
2001-03-19 01:35:04 +00:00
}
2001-05-17 14:48:39 +00:00
else
2001-03-19 01:35:04 +00:00
{
2001-07-04 19:36:32 +00:00
$username_sql = " username = ' $username ', " ;
2001-03-19 01:35:04 +00:00
}
}
2001-07-04 19:36:32 +00:00
}
2001-09-25 23:22:42 +00:00
if ( $signature != " " )
{
if ( strlen ( $signature ) > $board_config [ 'max_sig_chars' ] )
{
$error = TRUE ;
if ( isset ( $error_msg ))
{
$error_msg .= " <br /> " ;
}
$error_msg .= $lang [ 'Signature_too_long' ];
}
else
{
$signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid () : " " ;
$signature = prepare_message ( $signature , $allowhtml , $allowbbcode , $allowsmilies , $signature_bbcode_uid );
}
}
2001-07-04 19:36:32 +00:00
if ( $mode == " register " )
{
//
// The AUTO_INCREMENT field in MySQL v3.23 doesn't work
// correctly when there is a row with -1 in that field
// so we have to explicitly get the next user ID
//
$sql = " SELECT MAX(user_id) AS total
2001-07-06 00:18:01 +00:00
FROM " . USERS_TABLE;
2001-07-04 19:36:32 +00:00
if ( $result = $db -> sql_query ( $sql ))
2001-03-19 01:35:04 +00:00
{
2001-08-20 15:59:03 +00:00
$row = $db -> sql_fetchrow ( $result );
$new_user_id = $row [ 'total' ] + 1 ;
2001-06-03 23:10:07 +00:00
2001-07-04 19:36:32 +00:00
unset ( $result );
2001-08-20 15:59:03 +00:00
unset ( $row );
2001-07-04 19:36:32 +00:00
}
else
2001-03-19 01:35:04 +00:00
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Couldn't obtained next user_id information. " , " " , __LINE__ , __FILE__ , $sql );
2001-05-17 14:48:39 +00:00
}
2001-08-20 15:59:03 +00:00
$sql = " SELECT MAX(group_id) AS total
FROM " . GROUPS_TABLE;
if ( $result = $db -> sql_query ( $sql ))
{
$row = $db -> sql_fetchrow ( $result );
$new_group_id = $row [ 'total' ] + 1 ;
unset ( $result );
unset ( $row );
}
else
{
message_die ( GENERAL_ERROR , " Couldn't obtained next user_id information. " , " " , __LINE__ , __FILE__ , $sql );
}
2001-07-04 19:36:32 +00:00
}
2001-05-27 19:14:35 +00:00
2001-08-18 12:38:05 +00:00
$avatar_sql = " " ;
2001-07-04 19:36:32 +00:00
if ( $board_config [ 'allow_avatar_upload' ] && ! $error )
{
//
2001-08-13 01:07:14 +00:00
// Only allow one type of upload, either a
2001-07-04 19:36:32 +00:00
// filename or a URL
//
if ( ! empty ( $user_avatar_loc ) && ! empty ( $user_avatar_url ))
2001-05-27 19:14:35 +00:00
{
2001-07-04 19:36:32 +00:00
$error = TRUE ;
if ( isset ( $error_msg ))
2001-07-02 01:02:43 +00:00
{
2001-07-04 19:36:32 +00:00
$error_msg .= " <br /> " ;
2001-07-02 01:02:43 +00:00
}
2001-07-04 19:36:32 +00:00
$error_msg .= $lang [ 'Only_one_avatar' ];
}
2001-07-02 01:02:43 +00:00
2001-09-25 23:22:42 +00:00
if ( isset ( $HTTP_POST_VARS [ 'avatardel' ]) && $mode == " editprofile " )
2001-07-04 19:36:32 +00:00
{
if ( file_exists ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $userdata [ 'user_avatar' ]))
2001-05-27 19:14:35 +00:00
{
2001-07-04 19:36:32 +00:00
@ unlink ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $userdata [ 'user_avatar' ]);
$avatar_sql = " , user_avatar = '' " ;
2001-05-27 19:14:35 +00:00
}
2001-07-04 19:36:32 +00:00
}
2001-09-25 23:22:42 +00:00
else if ( $user_avatar_loc != " " )
2001-07-04 19:36:32 +00:00
{
if ( $board_config [ 'allow_avatar_upload' ])
2001-05-27 19:14:35 +00:00
{
2001-05-28 16:05:57 +00:00
if ( file_exists ( $user_avatar_loc ) && ereg ( " .jpg $ |.gif $ |.png $ " , $user_avatar_name ))
{
if ( $user_avatar_size <= $board_config [ 'avatar_filesize' ] && $avatar_size > 0 )
{
$error_type = false ;
2001-07-11 01:09:26 +00:00
//
// Opera appends the image name after the type, not big, not clever!
//
2001-09-25 23:22:42 +00:00
preg_match ( " 'image \ /[x \ -]*([a-z]+)' " , $user_avatar_type , $user_avatar_type );
2001-07-11 01:09:26 +00:00
$user_avatar_type = $user_avatar_type [ 1 ];
2001-05-28 16:05:57 +00:00
switch ( $user_avatar_type )
{
2001-09-25 23:22:42 +00:00
case " jpeg " :
2001-07-09 20:26:33 +00:00
$imgtype = '.jpg' ;
break ;
2001-09-25 23:22:42 +00:00
case " pjpeg " :
2001-05-28 16:05:57 +00:00
$imgtype = '.jpg' ;
break ;
2001-09-25 23:22:42 +00:00
case " gif " :
2001-05-28 16:05:57 +00:00
$imgtype = '.gif' ;
break ;
2001-09-25 23:22:42 +00:00
case " png " :
2001-05-28 16:05:57 +00:00
$imgtype = '.png' ;
break ;
default :
2001-07-02 01:02:43 +00:00
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Avatar_filetype' ] : $lang [ 'Avatar_filetype' ];
2001-05-28 16:05:57 +00:00
break ;
}
2001-07-02 01:02:43 +00:00
if ( ! $error )
2001-05-28 16:05:57 +00:00
{
2001-09-17 19:38:08 +00:00
list ( $width , $height ) = @ getimagesize ( $user_avatar_loc );
2001-06-12 23:30:13 +00:00
2001-08-13 01:07:14 +00:00
if ( $width <= $board_config [ 'avatar_max_width' ] &&
2001-06-12 23:30:13 +00:00
$height <= $board_config [ 'avatar_max_height' ] )
{
2001-07-04 19:36:32 +00:00
$user_id = ( $mode == " register " ) ? $new_user_id : $userdata [ 'user_id' ];
2001-06-12 23:30:13 +00:00
2001-07-04 19:36:32 +00:00
$avatar_filename = $user_id . $imgtype ;
if ( $mode == " editprofile " )
2001-06-12 23:30:13 +00:00
{
2001-07-04 19:36:32 +00:00
if ( file_exists ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $user_id ))
{
@ unlink ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $user_id );
}
2001-06-12 23:30:13 +00:00
}
@ copy ( $user_avatar_loc , " ./ " . $board_config [ 'avatar_path' ] . " / $avatar_filename " );
2001-08-18 12:38:05 +00:00
2001-06-12 23:30:13 +00:00
$avatar_sql = " , user_avatar = ' $avatar_filename ' " ;
}
else
2001-05-28 16:05:57 +00:00
{
2001-06-12 23:30:13 +00:00
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Avatar_imagesize' ] : $lang [ 'Avatar_imagesize' ];
2001-05-28 16:05:57 +00:00
}
}
2001-07-02 01:02:43 +00:00
}
else
{
$error = true ;
2001-09-25 23:22:42 +00:00
$error_filesize = $lang [ 'Avatar_filesize' ] . " " . round ( $board_config [ 'avatar_filesize' ] / 1024 ) . " " . $lang [ 'kB' ];
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $error_filesize : $error_filesize ;
2001-07-02 01:02:43 +00:00
}
}
else
{
$error = true ;
2001-09-25 23:22:42 +00:00
echo $error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Avatar_filetype' ] : $lang [ 'Avatar_filetype' ];
2001-07-02 01:02:43 +00:00
}
2001-07-04 19:36:32 +00:00
} // if ... allow_avatar_upload
}
else if ( ! empty ( $user_avatar_url ))
{
if ( $board_config [ 'allow_avatar_upload' ])
2001-07-02 01:02:43 +00:00
{
//
2001-08-13 01:07:14 +00:00
// First check what port we should connect
2001-07-02 01:02:43 +00:00
// to, look for a :[xxxx]/ or, if that doesn't
2001-07-04 19:36:32 +00:00
// exist assume port 80 (http)
2001-07-02 01:02:43 +00:00
//
2001-09-25 23:22:42 +00:00
preg_match ( " /^(http: \ / \ /)?([a-z0-9 \ .]+) \ :?([0-9]*) \ /(.*) $ / " , $user_avatar_url , $url_ary );
2001-07-02 01:02:43 +00:00
2001-09-25 23:22:42 +00:00
if ( ! empty ( $url_ary [ 4 ]) )
2001-07-02 01:02:43 +00:00
{
2001-07-04 19:36:32 +00:00
$port = ( ! empty ( $url_ary [ 3 ])) ? $url_ary [ 3 ] : 80 ;
2001-09-17 19:38:08 +00:00
$fsock = @ fsockopen ( $url_ary [ 2 ], $port , $errno , $errstr );
2001-07-02 01:02:43 +00:00
if ( $fsock )
{
2001-07-09 20:26:33 +00:00
$base_get = " / " . $url_ary [ 4 ];
2001-07-04 19:36:32 +00:00
2001-07-02 01:02:43 +00:00
//
// Uses HTTP 1.1, could use HTTP 1.0 ...
//
2001-09-17 19:38:08 +00:00
@ 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 " );
2001-07-02 01:02:43 +00:00
unset ( $avatar_data );
2001-09-25 23:22:42 +00:00
while ( !@ feof ( $fsock ))
2001-08-13 01:07:14 +00:00
{
2001-09-25 23:22:42 +00:00
$avatar_data .= @ fread ( $fsock , $board_config [ 'avatar_filesize' ]);
2001-08-13 01:07:14 +00:00
}
2001-09-17 19:38:08 +00:00
@ fclose ( $fsock );
2001-07-02 01:02:43 +00:00
2001-09-25 23:22:42 +00:00
if ( preg_match ( " /Content-Length \ : ([0-9]+)[^ \ /]+Content-Type \ : image \ /[x \ -]*([a-z]+)[ \ s]+/i " , $avatar_data , $file_data ))
2001-07-02 01:02:43 +00:00
{
$file_size = $file_data [ 1 ];
$file_type = $file_data [ 2 ];
switch ( $file_type )
{
2001-09-25 23:22:42 +00:00
case " jpeg " :
2001-07-09 20:26:33 +00:00
$imgtype = '.jpg' ;
break ;
2001-09-25 23:22:42 +00:00
case " pjpeg " :
2001-07-02 01:02:43 +00:00
$imgtype = '.jpg' ;
break ;
2001-09-25 23:22:42 +00:00
case " gif " :
2001-07-02 01:02:43 +00:00
$imgtype = '.gif' ;
break ;
2001-09-25 23:22:42 +00:00
case " png " :
2001-07-02 01:02:43 +00:00
$imgtype = '.png' ;
break ;
default :
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Avatar_filetype' ] : $lang [ 'Avatar_filetype' ];
2001-07-02 01:02:43 +00:00
break ;
}
2001-07-04 19:36:32 +00:00
2001-07-02 01:02:43 +00:00
if ( ! $error && $file_size > 0 && $file_size < $board_config [ 'avatar_filesize' ])
{
$avatar_data = substr ( $avatar_data , strlen ( $avatar_data ) - $file_size , $file_size );
$tmp_filename = tempnam ( " /tmp " , $userdata [ 'user_id' ] . " - " );
2001-09-17 19:38:08 +00:00
$fptr = @ fopen ( $tmp_filename , " wb " );
$bytes_written = @ fwrite ( $fptr , $avatar_data , $file_size );
@ fclose ( $fptr );
2001-07-02 01:02:43 +00:00
if ( $bytes_written == $file_size )
{
2001-09-17 19:38:08 +00:00
list ( $width , $height ) = @ getimagesize ( $tmp_filename );
2001-07-02 01:02:43 +00:00
if ( $width <= $board_config [ 'avatar_max_width' ] && $height <= $board_config [ 'avatar_max_height' ] )
{
2001-07-04 19:36:32 +00:00
$user_id = ( $mode == " register " ) ? $new_user_id : $userdata [ 'user_id' ];
2001-07-02 01:02:43 +00:00
2001-07-04 19:36:32 +00:00
$avatar_filename = $user_id . $imgtype ;
if ( $mode == " editprofile " )
2001-07-02 01:02:43 +00:00
{
2001-07-04 19:36:32 +00:00
if ( file_exists ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $user_id ))
{
@ unlink ( " ./ " . $board_config [ 'avatar_path' ] . " / " . $user_id );
}
2001-07-02 01:02:43 +00:00
}
2001-09-17 19:38:08 +00:00
@ copy ( $tmp_filename , " ./ " . $board_config [ 'avatar_path' ] . " / $avatar_filename " );
2001-07-02 01:02:43 +00:00
@ unlink ( $tmp_filename );
2001-08-18 12:38:05 +00:00
$avatar_sql = " , user_avatar = ' $avatar_filename ' " ;
2001-07-02 01:02:43 +00:00
}
else
{
//
// Image too large
//
@ unlink ( $tmp_filename );
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Avatar_imagesize' ] : $lang [ 'Avatar_imagesize' ];
2001-07-02 01:02:43 +00:00
}
}
else
{
//
// Error writing file
//
@ unlink ( $tmp_filename );
2001-07-04 23:26:19 +00:00
message_die ( GENERAL_ERROR , " Could not write avatar file to local storage. Please contact the board administrator with this message " , " " , __LINE__ , __FILE__ );
2001-07-02 01:02:43 +00:00
}
}
}
2001-05-28 16:05:57 +00:00
else
{
2001-07-02 01:02:43 +00:00
//
// No data
//
2001-05-28 16:05:57 +00:00
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'File_no_data' ] : $lang [ 'File_no_data' ];
2001-05-28 16:05:57 +00:00
}
}
else
{
2001-07-02 01:02:43 +00:00
//
// No connection
//
2001-05-28 16:05:57 +00:00
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'No_connection_URL' ] : $lang [ 'No_connection_URL' ];
2001-05-28 16:05:57 +00:00
}
}
else
{
$error = true ;
2001-08-18 12:38:05 +00:00
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $lang [ 'Incomplete_URL' ] : $lang [ 'Incomplete_URL' ];
2001-05-28 16:05:57 +00:00
}
2001-07-04 19:36:32 +00:00
} // if ... allow_avatar_upload
2001-05-27 19:14:35 +00:00
}
2001-09-25 23:22:42 +00:00
else if ( ! empty ( $user_avatar_name ) )
{
$error = true ;
$error_filesize = $lang [ 'Avatar_filesize' ] . " " . round ( $board_config [ 'avatar_filesize' ] / 1024 ) . " " . $lang [ 'kB' ];
$error_msg = ( ! empty ( $error_msg )) ? $error_msg . " <br /> " . $error_filesize : $error_filesize ;
}
2001-07-04 19:36:32 +00:00
}
2001-05-27 19:14:35 +00:00
2001-08-18 12:38:05 +00:00
if ( $board_config [ 'allow_avatar_remote' ] && ! $error )
{
if ( $user_avatar_remoteurl != " " && $avatar_sql == " " )
{
if ( ! eregi ( " ^http \ : \ / \ / " , $user_avatar_remoteurl ) )
{
$user_avatar_remoteurl = " http:// " . $user_avatar_remoteurl ;
}
$avatar_sql = " , user_avatar = ' $user_avatar_remoteurl ' " ;
}
}
2001-07-04 19:36:32 +00:00
if ( ! $error )
{
if ( $mode == " editprofile " )
2001-05-17 14:48:39 +00:00
{
2001-09-25 18:18:47 +00:00
if ( $email != $current_email && ( $board_config [ 'require_activation' ] == USER_ACTIVATION_SELF || $board_config [ 'require_activation' ] == USER_ACTIVATION_ADMIN ) )
2001-08-13 07:40:52 +00:00
{
$user_active = 0 ;
$user_actkey = generate_activation_key ();
//
2001-08-20 15:59:03 +00:00
// The user is inactive, remove their session forcing them to login again before they can post.
2001-08-13 07:40:52 +00:00
//
$sql = " DELETE FROM " . SESSIONS_TABLE . "
2001-09-25 18:18:47 +00:00
WHERE session_user_id = " . $userdata['user_id'] ;
2001-08-13 07:40:52 +00:00
$db -> sql_query ( $sql );
}
else
{
$user_active = 1 ;
$user_actkey = " " ;
}
2001-07-31 23:13:13 +00:00
$sql = " UPDATE " . USERS_TABLE . "
2001-09-25 18:18:47 +00:00
SET " . $username_sql . $passwd_sql . " user_email = '$email' , user_icq = '$icq' , user_website = '$website' , user_occ = '$occupation' , user_from = '$location' , user_interests = '$interests' , user_sig = '$signature' , user_sig_bbcode_uid = '$signature_bbcode_uid' , user_viewemail = $viewemail , user_aim = '$aim' , user_yim = '$yim' , user_msnm = '$msn' , user_attachsig = $attachsig , user_allowsmile = $allowsmilies , user_allowhtml = $allowhtml , user_allowbbcode = $allowbbcode , user_allow_viewonline = $allowviewonline , user_notify = $notifyreply , user_notify_pm = $notifypm , user_timezone = $user_timezone , user_dateformat = '$user_dateformat' , user_lang = '$user_lang' , user_style = $user_style , user_active = $user_active , user_actkey = '$user_actkey' " . $avatar_sql . "
2001-05-17 14:48:39 +00:00
WHERE user_id = $user_id " ;
2001-06-03 23:10:07 +00:00
2001-05-17 14:48:39 +00:00
if ( $result = $db -> sql_query ( $sql ))
2001-05-27 19:14:35 +00:00
{
2001-09-25 18:18:47 +00:00
if ( $user_active == 0 )
2001-08-13 07:40:52 +00:00
{
//
// The users account has been deactivated, send them an email with a new activation key
//
2001-09-25 18:18:47 +00:00
include ( $phpbb_root_path . 'includes/emailer.' . $phpEx );
$emailer = new emailer ( $board_config [ 'smtp_delivery' ]);
$email_headers = " From: " . $board_config [ 'board_email' ] . " \n Return-Path: " . $board_config [ 'board_email' ] . " \r \n " ;
2001-08-13 07:40:52 +00:00
2001-09-09 23:22:29 +00:00
$path = ( dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]) == " / " ) ? " " : dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]);
2001-09-25 18:18:47 +00:00
if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_SELF )
{
$emailer -> use_template ( " user_activate " );
$emailer -> email_address ( $email );
}
else
{
$emailer -> use_template ( " admin_activate " );
$emailer -> email_address ( $board_config [ 'board_email' ]);
}
2001-08-13 07:40:52 +00:00
$emailer -> set_subject ( $lang [ 'Reactivate' ]);
$emailer -> extra_headers ( $email_headers );
2001-08-14 14:49:43 +00:00
$emailer -> assign_vars ( array (
2001-09-14 00:21:07 +00:00
" SITENAME " => $board_config [ 'sitename' ],
2001-09-09 23:22:29 +00:00
" USERNAME " => $username ,
2001-09-25 18:18:47 +00:00
" EMAIL_SIG " => str_replace ( " <br /> " , " \n " , " -- \n " . $board_config [ 'board_email_sig' ]),
2001-09-09 23:22:29 +00:00
2001-09-10 16:20:40 +00:00
" U_ACTIVATE " => " http:// " . $HTTP_SERVER_VARS [ 'SERVER_NAME' ] . $path . " /profile. $phpEx ?mode=activate&act_key= $act_key " )
2001-08-14 14:49:43 +00:00
);
2001-08-13 07:40:52 +00:00
$emailer -> send ();
$emailer -> reset ();
2001-09-25 18:18:47 +00:00
$message = $lang [ 'Profile_updated' ] . " <br /><br /> " . $lang [ 'Click' ] . " <a href= \" " . append_sid ( " index. $phpEx " ) . " \" > " . $lang [ 'Here' ] . " </a> " . $lang [ 'to_return_index' ];
}
else
{
$message = $lang [ 'Profile_updated' ] . " <br /><br /> " . $lang [ 'Click' ] . " <a href= \" " . append_sid ( " index. $phpEx " ) . " \" > " . $lang [ 'Here' ] . " </a> " . $lang [ 'to_return_index' ];
2001-08-13 07:40:52 +00:00
}
2001-09-09 23:22:29 +00:00
$template -> assign_vars ( array (
" META " => '<meta http-equiv="refresh" content="3;url=index.' . $phpEx . '">' )
);
message_die ( GENERAL_MESSAGE , $message );
2001-03-22 01:33:42 +00:00
}
2001-05-24 20:10:34 +00:00
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Could not update users table " , " " , __LINE__ , __FILE__ , $sql );
2001-05-24 20:10:34 +00:00
}
2001-05-17 14:48:39 +00:00
}
else
{
2001-07-04 23:26:19 +00:00
//
// Get current date
//
2001-09-25 18:18:47 +00:00
$sql = " INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)
VALUES ( $new_user_id , '$username' , " . time() . " , '$password' , '$email' , '$icq' , '$website' , '$occupation' , '$location' , '$interests' , '$signature' , '$signature_bbcode_uid' , '$avatar_filename' , $viewemail , '$aim' , '$yim' , '$msn' , $attachsig , $allowsmilies , $allowhtml , $allowbbcode , $allowviewonline , $notifyreply , $notifypm , $user_timezone , '$user_dateformat' , '$user_lang' , $user_style , 0 , 1 , " ;
2001-05-28 16:05:57 +00:00
2001-09-25 18:18:47 +00:00
if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_SELF || $board_config [ 'require_activation' ] == USER_ACTIVATION_ADMIN || $coppa == 1 )
2001-05-17 14:48:39 +00:00
{
2001-09-10 16:20:40 +00:00
$user_actkey = generate_activation_key ();
$sql .= " 0, ' $user_actkey ') " ;
2001-05-17 14:48:39 +00:00
}
else
{
$sql .= " 1, '') " ;
}
2001-07-04 19:36:32 +00:00
if ( $result = $db -> sql_query ( $sql , BEGIN_TRANSACTION ))
2001-05-17 14:48:39 +00:00
{
2001-08-20 15:59:03 +00:00
$sql = " INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator)
VALUES ( $new_group_id , '' , 'Personal User' , 1 , 0 ) " ;
2001-05-30 15:46:07 +00:00
if ( $result = $db -> sql_query ( $sql ))
2001-05-17 14:48:39 +00:00
{
2001-07-04 19:36:32 +00:00
$sql = " INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
2001-08-20 15:59:03 +00:00
VALUES ( $new_user_id , $new_group_id , 0 ) " ;
2001-07-04 19:36:32 +00:00
if ( $result = $db -> sql_query ( $sql , END_TRANSACTION ))
2001-05-30 15:46:07 +00:00
{
2001-09-25 18:18:47 +00:00
if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_SELF )
2001-05-30 15:46:07 +00:00
{
2001-09-09 23:22:29 +00:00
$message = $lang [ 'Account_inactive' ];
2001-09-25 18:18:47 +00:00
$email_template = " user_welcome_inactive " ;
}
else if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_ADMIN )
{
$message = $lang [ 'Account_inactive_admin' ];
$email_template = " admin_welcome_inactive " ;
2001-05-30 15:46:07 +00:00
}
2001-09-25 18:18:47 +00:00
else if ( $coppa )
2001-05-30 15:46:07 +00:00
{
2001-09-09 23:22:29 +00:00
$message = $lang [ 'COPPA' ];
2001-09-27 09:48:37 +00:00
$email_template = " coppa_welcome_inactive " ;
2001-05-30 15:46:07 +00:00
}
else
{
2001-09-09 23:22:29 +00:00
$message = $lang [ 'Account_added' ];
2001-09-25 18:18:47 +00:00
$email_template = " user_welcome " ;
2001-05-30 15:46:07 +00:00
}
2001-06-03 23:10:07 +00:00
2001-09-27 09:48:37 +00:00
include ( $phpbb_root_path . 'includes/emailer.' . $phpEx );
$emailer = new emailer ( $board_config [ 'smtp_delivery' ]);
$email_headers = " From: " . $board_config [ 'board_email' ] . " \n Return-Path: " . $board_config [ 'board_email' ] . " \r \n " ;
$path = ( dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]) == " / " ) ? " " : dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]);
$emailer -> use_template ( $email_template );
$emailer -> email_address ( $email );
$emailer -> set_subject ( $lang [ 'Welcome_subject' ]);
$emailer -> extra_headers ( $email_headers );
if ( $coppa )
2001-05-30 15:46:07 +00:00
{
2001-09-27 09:48:37 +00:00
$emailer -> assign_vars ( array (
" WELCOME_MSG " => $lang [ 'Welcome_subject' ],
" USERNAME " => $username ,
" PASSWORD " => $password_confirm ,
" EMAIL_SIG " => str_replace ( " <br /> " , " \n " , " -- \n " . $board_config [ 'board_email_sig' ]),
2001-09-25 18:18:47 +00:00
2001-09-27 09:48:37 +00:00
" U_ACTIVATE " => " http:// " . $HTTP_SERVER_VARS [ 'SERVER_NAME' ] . $path . " /profile. $phpEx ?mode=activate&act_key= $user_actkey " ,
" FAX_INFO " => $board_config [ 'coppa_fax' ],
" MAIL_INFO " => $board_config [ 'coppa_mail' ],
" EMAIL_ADDRESS " => $email ,
" ICQ " => $icq ,
" AIM " => $aim ,
" YIM " => $yim ,
" MSN " => $msn ,
" WEB_SITE " => $website ,
" FROM " => $location ,
" OCC " => $occupation ,
" INTERESTS " => $interests ,
" SITENAME " => $board_config [ 'sitename' ]));
}
else
{
$emailer -> assign_vars ( array (
" WELCOME_MSG " => $lang [ 'Welcome_subject' ],
" USERNAME " => $username ,
" PASSWORD " => $password_confirm ,
" EMAIL_SIG " => str_replace ( " <br /> " , " \n " , " -- \n " . $board_config [ 'board_email_sig' ]),
" U_ACTIVATE " => " http:// " . $HTTP_SERVER_VARS [ 'SERVER_NAME' ] . $path . " /profile. $phpEx ?mode=activate&act_key= $user_actkey " )
);
}
2001-08-13 01:07:14 +00:00
2001-09-27 09:48:37 +00:00
$emailer -> send ();
$emailer -> reset ();
2001-09-09 23:22:29 +00:00
2001-09-27 09:48:37 +00:00
if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_ADMIN )
{
$emailer -> use_template ( " admin_activate " );
$emailer -> email_address ( $board_config [ 'board_email' ]);
$emailer -> set_subject ( $lang [ 'New_account_subject' ]);
2001-08-13 01:07:14 +00:00
$emailer -> extra_headers ( $email_headers );
2001-08-14 00:29:39 +00:00
$emailer -> assign_vars ( array (
" WELCOME_MSG " => $lang [ 'Welcome_subject' ],
" USERNAME " => $username ,
2001-09-25 18:18:47 +00:00
" EMAIL_SIG " => str_replace ( " <br /> " , " \n " , " -- \n " . $board_config [ 'board_email_sig' ]),
2001-09-14 00:21:07 +00:00
2001-09-09 23:22:29 +00:00
" U_ACTIVATE " => " http:// " . $HTTP_SERVER_VARS [ 'SERVER_NAME' ] . $path . " /profile. $phpEx ?mode=activate&act_key= $user_actkey " )
2001-08-14 00:29:39 +00:00
);
2001-08-13 01:07:14 +00:00
$emailer -> send ();
2001-08-13 03:16:35 +00:00
$emailer -> reset ();
2001-05-30 15:46:07 +00:00
}
2001-09-09 23:22:29 +00:00
$template -> assign_vars ( array (
2001-09-25 18:18:47 +00:00
" META " => '<meta http-equiv="refresh" content="5;url=index.' . $phpEx . '">' )
2001-09-09 23:22:29 +00:00
);
2001-09-14 00:21:07 +00:00
2001-09-09 23:22:29 +00:00
$message = $message . " <br /><br /> " . $lang [ 'Click' ] . " <a href= \" " . append_sid ( " index. $phpEx " ) . " \" > " . $lang [ 'Here' ] . " </a> " . $lang [ 'to_return_index' ];
message_die ( GENERAL_MESSAGE , $message );
2001-05-30 15:46:07 +00:00
}
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Couldn't insert data into user_group table " , " " , __LINE__ , __FILE__ , $sql );
2001-05-30 15:46:07 +00:00
}
2001-05-17 14:48:39 +00:00
}
else
{
2001-08-13 01:07:14 +00:00
message_die ( GENERAL_ERROR , " Couldn't insert data into groups table " , " " , __LINE__ , __FILE__ , $sql );
2001-05-17 14:48:39 +00:00
}
}
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Couldn't insert data into users table " , " " , __LINE__ , __FILE__ , $sql );
2001-05-17 14:48:39 +00:00
}
2001-07-04 19:36:32 +00:00
} // if mode == register
}
2001-09-25 23:22:42 +00:00
//
// If an error occured we need to stripslashes on returned data
//
$username = stripslashes ( $username );
$email = stripslashes ( $email );
$password = " " ;
$password_confirm = " " ;
$icq = stripslashes ( $icq );
$aim = stripslashes ( $aim );
$msn = stripslashes ( $msn );
$yim = stripslashes ( $yim );
$website = stripslashes ( $website );
$location = stripslashes ( $location );
$occupation = stripslashes ( $occupation );
$interests = stripslashes ( $interests );
$signature = stripslashes ( $signature );
$user_lang = stripslashes ( $user_lang );
$user_dateformat = stripslashes ( $user_dateformat );
2001-07-04 19:36:32 +00:00
}
else if ( $mode == " editprofile " )
{
$user_id = $userdata [ 'user_id' ];
2001-08-09 22:21:55 +00:00
$username = $userdata [ 'username' ];
2001-07-04 19:36:32 +00:00
$email = $userdata [ 'user_email' ];
$password = " " ;
$password_confirm = " " ;
$icq = $userdata [ 'user_icq' ];
2001-08-09 22:21:55 +00:00
$aim = $userdata [ 'user_aim' ];
$msn = $userdata [ 'user_msnm' ];
$yim = $userdata [ 'user_yim' ];
2001-07-06 00:18:01 +00:00
2001-08-09 22:21:55 +00:00
$website = $userdata [ 'user_website' ];
$location = $userdata [ 'user_from' ];
$occupation = $userdata [ 'user_occ' ];
$interests = $userdata [ 'user_interests' ];
$signature = $userdata [ 'user_sig' ];
2001-09-25 18:18:47 +00:00
$signature_bbcode_uid = $userdata [ 'user_sig_bbcode_uid' ];
2001-07-04 19:36:32 +00:00
$viewemail = $userdata [ 'user_viewemail' ];
$notifypm = $userdata [ 'user_notify_pm' ];
2001-08-14 00:29:39 +00:00
$notifyreply = $userdata [ 'user_notify' ];
2001-07-04 19:36:32 +00:00
$attachsig = $userdata [ 'user_attachsig' ];
$allowhtml = $userdata [ 'user_allowhtml' ];
$allowbbcode = $userdata [ 'user_allowbbcode' ];
$allowsmilies = $userdata [ 'user_allowsmile' ];
$allowviewonline = $userdata [ 'user_allow_viewonline' ];
$user_avatar = $userdata [ 'user_avatar' ];
2001-09-25 18:18:47 +00:00
$user_style = $userdata [ 'user_style' ];
2001-07-04 19:36:32 +00:00
$user_lang = $userdata [ 'user_lang' ];
$user_timezone = $userdata [ 'user_timezone' ];
$user_dateformat = $userdata [ 'user_dateformat' ];
}
2001-05-17 14:48:39 +00:00
2001-09-25 18:18:47 +00:00
if ( ! isset ( $coppa ) )
2001-07-04 19:36:32 +00:00
{
$coppa = FALSE ;
}
2001-09-25 18:18:47 +00:00
if ( ! isset ( $user_template ) )
2001-07-04 19:36:32 +00:00
{
2001-09-08 18:24:34 +00:00
$selected_template = $board_config [ 'system_template' ];
2001-07-04 19:36:32 +00:00
}
2001-09-25 18:18:47 +00:00
$html_status = ( $userdata [ 'user_allowhtml' ]) ? $lang [ 'ON' ] : $lang [ 'OFF' ];
$bbcode_status = ( $userdata [ 'user_allowbbcode' ]) ? $lang [ 'ON' ] : $lang [ 'OFF' ];
$smilies_status = ( $userdata [ 'user_allowsmile' ]) ? $lang [ 'ON' ] : $lang [ 'OFF' ];
2001-07-23 16:43:10 +00:00
2001-09-25 18:18:47 +00:00
$signature = preg_replace ( " / \ :[0-9a-z \ :]*? \ ]/si " , " ] " , $signature );
if ( $user_avatar != " " )
2001-08-18 12:38:05 +00:00
{
2001-09-25 18:18:47 +00:00
$avatar_img = ( eregi ( " ^http " , $user_avatar ) && $board_config [ 'allow_avatar_remote' ]) ? " <img src= \" " . $user_avatar . " \" > " : " <img src= \" " . $board_config [ 'avatar_path' ] . " / " . $user_avatar . " \" alt= \" \" /> " ;
2001-08-18 12:38:05 +00:00
}
else
{
$avatar_img = " " ;
}
2001-07-31 20:06:50 +00:00
$s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />' ;
2001-09-25 18:18:47 +00:00
if ( $mode == " editprofile " )
2001-07-04 19:36:32 +00:00
{
2001-07-31 20:06:50 +00:00
$s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata [ 'user_id' ] . '" />' ;
2001-09-25 18:18:47 +00:00
//
2001-08-13 07:40:52 +00:00
// Send the users current email address. If they change it, and account activation is turned on
// the user account will be disabled and the user will have to reactivate their account.
2001-09-25 18:18:47 +00:00
//
2001-08-13 07:40:52 +00:00
$s_hidden_fields .= '<input type="hidden" name="current_email" value="' . $userdata [ 'user_email' ] . '" />' ;
2001-07-04 19:36:32 +00:00
}
2001-08-13 01:07:14 +00:00
2001-09-09 23:22:29 +00:00
include ( $phpbb_root_path . 'includes/page_header.' . $phpEx );
if ( $error )
{
$template -> set_filenames ( array (
" reg_header " => " error_body.tpl " )
);
$template -> assign_vars ( array (
" ERROR_MESSAGE " => $error_msg )
);
$template -> pparse ( " reg_header " );
}
2001-07-04 19:36:32 +00:00
$template -> set_filenames ( array (
" body " => " profile_add_body.tpl " ,
" jumpbox " => " jumpbox.tpl " )
);
$jumpbox = make_jumpbox ();
$template -> assign_vars ( array (
2001-08-13 01:07:14 +00:00
" L_GO " => $lang [ 'Go' ],
" L_JUMP_TO " => $lang [ 'Jump_to' ],
" L_SELECT_FORUM " => $lang [ 'Select_forum' ],
2001-09-14 00:21:07 +00:00
2001-09-07 12:32:47 +00:00
" S_JUMPBOX_LIST " => $jumpbox ,
" S_JUMPBOX_ACTION " => append_sid ( " viewforum. $phpEx " ))
2001-07-04 19:36:32 +00:00
);
$template -> assign_var_from_handle ( " JUMPBOX " , " jumpbox " );
$template -> assign_vars ( array (
2001-09-10 16:20:40 +00:00
" USERNAME " => $username ,
" EMAIL " => $email ,
" YIM " => $yim ,
" ICQ " => $icq ,
" MSN " => $msn ,
" AIM " => $aim ,
" OCCUPATION " => $occupation ,
" INTERESTS " => $interests ,
" LOCATION " => $location ,
" WEBSITE " => $website ,
" SIGNATURE " => str_replace ( " <br /> " , " \n " , $signature ),
2001-07-31 20:06:50 +00:00
" VIEW_EMAIL_YES " => ( $viewemail ) ? " checked= \" checked \" " : " " ,
2001-08-13 01:07:14 +00:00
" VIEW_EMAIL_NO " => ( ! $viewemail ) ? " checked= \" checked \" " : " " ,
2001-07-31 20:06:50 +00:00
" HIDE_USER_YES " => ( ! $allowviewonline ) ? " checked= \" checked \" " : " " ,
2001-08-13 01:07:14 +00:00
" HIDE_USER_NO " => ( $allowviewonline ) ? " checked= \" checked \" " : " " ,
" NOTIFY_PM_YES " => ( $notifypm ) ? " checked= \" checked \" " : " " ,
" NOTIFY_PM_NO " => ( ! $notifypm ) ? " checked= \" checked \" " : " " ,
2001-07-31 20:06:50 +00:00
" ALWAYS_ADD_SIGNATURE_YES " => ( $attachsig ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ADD_SIGNATURE_NO " => ( ! $attachsig ) ? " checked= \" checked \" " : " " ,
2001-08-14 14:49:43 +00:00
" NOTIFY_REPLY_YES " => ( $notifyreply ) ? " checked= \" checked \" " : " " ,
" NOTIFY_REPLY_NO " => ( ! $notifyreply ) ? " checked= \" checked \" " : " " ,
2001-07-31 20:06:50 +00:00
" ALWAYS_ALLOW_BBCODE_YES " => ( $allowbbcode ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ALLOW_BBCODE_NO " => ( ! $allowbbcode ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ALLOW_HTML_YES " => ( $allowhtml ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ALLOW_HTML_NO " => ( ! $allowhtml ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ALLOW_SMILIES_YES " => ( $allowsmilies ) ? " checked= \" checked \" " : " " ,
" ALWAYS_ALLOW_SMILIES_NO " => ( ! $allowsmilies ) ? " checked= \" checked \" " : " " ,
2001-07-04 19:36:32 +00:00
" ALLOW_AVATAR " => $board_config [ 'allow_avatar_upload' ],
2001-08-18 12:38:05 +00:00
" AVATAR " => $avatar_img ,
2001-08-13 01:07:14 +00:00
" AVATAR_SIZE " => $board_config [ 'avatar_filesize' ],
2001-09-10 16:20:40 +00:00
" LANGUAGE_SELECT " => language_select ( $user_lang , 'language' ),
2001-09-25 18:18:47 +00:00
" STYLE_SELECT " => style_select ( $user_style , 'style' ),
2001-09-08 18:24:34 +00:00
" TIMEZONE_SELECT " => tz_select ( $user_timezone , 'timezone' ),
2001-09-10 16:20:40 +00:00
" DATE_FORMAT " => $user_dateformat ,
2001-08-13 01:07:14 +00:00
" HTML_STATUS " => $html_status ,
" BBCODE_STATUS " => $bbcode_status ,
" SMILIES_STATUS " => $smilies_status ,
2001-07-04 19:36:32 +00:00
2001-07-20 17:30:17 +00:00
" L_PASSWORD_IF_CHANGED " => ( $mode == " editprofile " ) ? $lang [ 'password_if_changed' ] : " " ,
" L_PASSWORD_CONFIRM_IF_CHANGED " => ( $mode == " editprofile " ) ? $lang [ 'password_confirm_if_changed' ] : " " ,
2001-08-13 01:07:14 +00:00
" L_SUBMIT " => $lang [ 'Submit' ],
" L_RESET " => $lang [ 'Reset' ],
2001-07-09 20:26:33 +00:00
" L_ICQ_NUMBER " => $lang [ 'ICQ' ],
" L_MESSENGER " => $lang [ 'MSNM' ],
" L_YAHOO " => $lang [ 'YIM' ],
" L_WEBSITE " => $lang [ 'Website' ],
" L_AIM " => $lang [ 'AIM' ],
" L_LOCATION " => $lang [ 'From' ],
2001-07-20 17:30:17 +00:00
" L_OCCUPATION " => $lang [ 'Occupation' ],
2001-07-04 23:26:19 +00:00
" L_BOARD_LANGUAGE " => $lang [ 'Board_lang' ],
2001-09-09 23:22:29 +00:00
" L_BOARD_STYLE " => $lang [ 'Board_style' ],
2001-07-20 17:30:17 +00:00
" L_TIMEZONE " => $lang [ 'Timezone' ],
" L_DATE_FORMAT " => $lang [ 'Date_format' ],
" L_DATE_FORMAT_EXPLAIN " => $lang [ 'Date_format_explain' ],
2001-07-04 19:36:32 +00:00
" L_YES " => $lang [ 'Yes' ],
2001-08-13 01:07:14 +00:00
" L_NO " => $lang [ 'No' ],
2001-07-20 17:30:17 +00:00
" L_INTERESTS " => $lang [ 'Interests' ],
2001-07-04 19:36:32 +00:00
" L_ALWAYS_ALLOW_SMILIES " => $lang [ 'Always_smile' ],
" L_ALWAYS_ALLOW_BBCODE " => $lang [ 'Always_bbcode' ],
2001-08-13 01:07:14 +00:00
" L_ALWAYS_ALLOW_HTML " => $lang [ 'Always_html' ],
" L_HIDE_USER " => $lang [ 'Hide_user' ],
2001-07-04 19:36:32 +00:00
" L_ALWAYS_ADD_SIGNATURE " => $lang [ 'Always_add_sig' ],
" L_AVATAR_PANEL " => $lang [ 'Avatar_panel' ],
" L_AVATAR_EXPLAIN " => $lang [ 'Avatar_explain' ],
" L_UPLOAD_AVATAR_FILE " => $lang [ 'Upload_Avatar_file' ],
2001-08-13 01:07:14 +00:00
" L_UPLOAD_AVATAR_URL " => $lang [ 'Upload_Avatar_URL' ],
" L_UPLOAD_AVATAR_URL_EXPLAIN " => $lang [ 'Upload_Avatar_URL_explain' ],
" L_AVATAR_GALLERY " => $lang [ 'Select_from_gallery' ],
" L_SHOW_GALLERY " => $lang [ 'Avatar_gallery' ],
" L_LINK_REMOTE_AVATAR " => $lang [ 'Link_remote_Avatar' ],
" L_LINK_REMOTE_AVATAR_EXPLAIN " => $lang [ 'Link_remote_Avatar_explain' ],
2001-07-04 19:36:32 +00:00
" L_DELETE_AVATAR " => $lang [ 'Delete_Image' ],
" L_CURRENT_IMAGE " => $lang [ 'Current_Image' ],
2001-07-20 17:30:17 +00:00
" L_SIGNATURE " => $lang [ 'Signature' ],
2001-08-13 01:07:14 +00:00
" L_SIGNATURE_EXPLAIN " => $lang [ 'Signature_explain' ],
2001-08-14 00:29:39 +00:00
" L_NOTIFY_ON_REPLY " => $lang [ 'Always_notify' ],
" L_NOTIFY_ON_REPLY_EXPLAIN " => $lang [ 'Always_notify_explain' ],
2001-08-13 01:07:14 +00:00
" L_NOTIFY_ON_PRIVMSG " => $lang [ 'Notify_on_privmsg' ],
2001-07-20 17:30:17 +00:00
" L_PREFERENCES " => $lang [ 'Preferences' ],
" L_PUBLIC_VIEW_EMAIL " => $lang [ 'Public_view_email' ],
" L_ITEMS_REQUIRED " => $lang [ 'Items_required' ],
" L_REGISTRATION_INFO " => $lang [ 'Registration_info' ],
" L_PROFILE_INFO " => $lang [ 'Profile_info' ],
" L_PROFILE_INFO_NOTICE " => $lang [ 'Profile_info_warn' ],
" L_CONFIRM " => $lang [ 'Confirm' ],
" L_EMAIL_ADDRESS " => $lang [ 'Email_address' ],
2001-07-04 19:36:32 +00:00
2001-07-23 16:43:10 +00:00
" L_HTML_IS " => $lang [ 'HTML' ] . " " . $lang [ 'is' ],
" L_BBCODE_IS " => $lang [ 'BBCode' ] . " " . $lang [ 'is' ],
" L_SMILIES_ARE " => $lang [ 'Smilies' ] . " " . $lang [ 'are' ],
2001-08-13 01:07:14 +00:00
" S_ALLOW_AVATAR_UPLOAD " => $board_config [ 'allow_avatar_upload' ],
2001-07-04 19:36:32 +00:00
" S_ALLOW_AVATAR_LOCAL " => $board_config [ 'allow_avatar_local' ],
2001-08-13 01:07:14 +00:00
" S_ALLOW_AVATAR_REMOTE " => $board_config [ 'allow_avatar_remote' ],
" S_HIDDEN_FIELDS " => $s_hidden_fields ,
2001-07-04 19:36:32 +00:00
" S_PROFILE_ACTION " => append_sid ( " profile. $phpEx " ))
);
2001-07-21 13:45:18 +00:00
//
// This is another cheat using the block_var capability
// of the templates to 'fake' an IF...ELSE...ENDIF solution
// it works well :)
//
if ( $board_config [ 'allow_avatar_upload' ] || $board_config [ 'allow_avatar_local' ] || $board_config [ 'allow_avatar_remote' ] )
{
$template -> assign_block_vars ( " avatarblock " , array () );
if ( $board_config [ 'allow_avatar_upload' ])
{
$template -> assign_block_vars ( " avatarblock.avatarupload " , array () );
}
if ( $board_config [ 'allow_avatar_remote' ])
{
$template -> assign_block_vars ( " avatarblock.avatarremote " , array () );
}
if ( $board_config [ 'allow_avatar_local' ])
{
$template -> assign_block_vars ( " avatarblock.avatargallery " , array () );
}
}
2001-07-04 19:36:32 +00:00
$template -> pparse ( " body " );
2001-07-13 16:14:37 +00:00
include ( $phpbb_root_path . 'includes/page_tail.' . $phpEx );
2001-07-04 19:36:32 +00:00
}
else if ( $mode == " activate " )
{
2001-09-25 18:18:47 +00:00
$sql = " SELECT user_id, user_email
2001-09-09 23:22:29 +00:00
FROM " . USERS_TABLE . "
WHERE user_actkey = '$act_key' " ;
2001-09-25 18:18:47 +00:00
if ( $result = $db -> sql_query ( $sql ) )
2001-05-17 14:48:39 +00:00
{
2001-09-25 18:18:47 +00:00
if ( $row = $db -> sql_fetchrow ( $result ) )
2001-03-19 01:35:04 +00:00
{
2001-07-01 15:22:51 +00:00
$sql_update = " UPDATE " . USERS_TABLE . "
2001-06-03 23:10:07 +00:00
SET user_active = 1 , user_actkey = ''
2001-09-25 18:18:47 +00:00
WHERE user_id = " . $row['user_id'] ;
2001-05-17 14:48:39 +00:00
if ( $result = $db -> sql_query ( $sql_update ))
{
2001-09-25 18:18:47 +00:00
if ( $board_config [ 'require_activation' ] == USER_ACTIVATION_ADMIN )
{
include ( $phpbb_root_path . 'includes/emailer.' . $phpEx );
$emailer = new emailer ( $board_config [ 'smtp_delivery' ]);
$email_headers = " From: " . $board_config [ 'board_email' ] . " \n Return-Path: " . $board_config [ 'board_email' ] . " \r \n " ;
$path = ( dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]) == " / " ) ? " " : dirname ( $HTTP_SERVER_VARS [ 'REQUEST_URI' ]);
$emailer -> use_template ( " admin_welcome_activated " );
$emailer -> email_address ( $row [ 'user_email' ]);
$emailer -> set_subject ( $lang [ 'Account_activated_subject' ]);
$emailer -> extra_headers ( $email_headers );
$emailer -> assign_vars ( array (
" USERNAME " => $username ,
" PASSWORD " => $password_confirm ,
" EMAIL_SIG " => str_replace ( " <br /> " , " \n " , " -- \n " . $board_config [ 'board_email_sig' ]))
);
$emailer -> send ();
$emailer -> reset ();
message_die ( GENERAL_MESSAGE , $lang [ 'Account_active_admin' ]);
}
else
{
message_die ( GENERAL_MESSAGE , $lang [ 'Account_active' ]);
}
2001-05-17 14:48:39 +00:00
}
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Couldn't update users table " , " " , __LINE__ , __FILE__ , $sql_update );
2001-05-17 14:48:39 +00:00
}
2001-03-19 01:35:04 +00:00
}
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , $lang [ '' ]); //wrongactiv
2001-03-19 01:35:04 +00:00
}
}
else
{
2001-07-04 19:36:32 +00:00
message_die ( GENERAL_ERROR , " Couldn't obtain user information " , " " , __LINE__ , __FILE__ , $sql );
2001-03-19 01:35:04 +00:00
}
2001-07-04 19:36:32 +00:00
break ;
2001-05-17 14:48:39 +00:00
}
2001-03-19 01:35:04 +00:00
}
2001-09-09 12:40:42 +00:00
?>