Jasinner
Sorry for this long message.
Found ext_0 & ext_1 :2thumbsup:
But I don't have the following
if (-e "$memberdir/$reguser.pre") {
my $setting;
fopen(LOADUSER, "$memberdir/$reguser.pre");
my @settings = <LOADUSER>;
fclose(LOADUSER);
foreach $setting (@settings) {
chomp $setting;
unless (length($setting) == 0) {
$setting =~ s/\'(.*?)\'\,\"(.*?)\"//ig;
my $tag = $1;
my $value = $2;
${$reguser}{$tag} = $value;
}
}
}
Is that important, and if not where will I put the last edit.?
Here are the contents of my Register.pl:
###############################################################################
# Register.pl #
###############################################################################
# YaBB: Yet another Bulletin Board #
# Open-Source Community Software for Webmasters #
# Version: YaBB 2.1 #
# Released: November 8, 2005 #
# Distributed by: http://www.yabbforum.com #
# =========================================================================== #
# Copyright (c) 2000-2005 YaBB (www.yabbforum.com) - All Rights Reserved. #
# Software by: The YaBB Development Team #
# with assistance from the YaBB community. #
# Sponsored by: Xnull Internet Media, Inc. - http://www.ximinc.com #
# Your source for web hosting, web design, and domains. #
###############################################################################
$registerplver = 'YaBB 2.1 $Revision: 1.7 $';
if ($action eq 'detailedversion') { return 1; }
LoadLanguage('Register');
LoadLanguage('Approval');
LoadLanguage("New_Member_Notification");
&LoadLanguage("UsersAvatars");
require "$sourcedir/UsersAvatars.pl";
require "$vardir/UsersAvatars.txt"; #required for @extupic
my $serveros = "$^O";
if ($serveros =~ m/Win/) {
my $regstyle = qq~style=" text-transform: lowercase"~;
} else {
my $regstyle = '';
}
sub Register {
if ($regdisable && $iamguest) { &fatal_error("$register_txt{'3'}"); }
my ($langopt, $tmpregname, $tmpregemail, $tmpregpasswrd1, $tmpregpasswrd2, $hidechecked);
if ($FORM{'reglanguage'}) {
$language = $FORM{'reglanguage'};
LoadLanguage('Main');
LoadLanguage('Register');
}
if ($FORM{'tusername'}) { $tmpregname = $FORM{'tusername'}; }
if ($FORM{'temail'}) { $tmpregemail = $FORM{'temail'}; }
if ($FORM{'thideemail'}) { $hidechecked = qq~checked="checked"~; }
if ($FORM{'tpasswrd1'}) { $tmpregpasswrd1 = $FORM{'tpasswrd1'}; }
if ($FORM{'tpasswrd2'}) { $tmpregpasswrd2 = $FORM{'tpasswrd2'}; }
if ($FORM{'tlocation'}) { $tmplocation = $FORM{'tlocation'}; }
if ($FORM{'tcountry'}) { $tmpcountry = $FORM{'tcountry'}; }
if ($FORM{'tstate'}) { $tmpstate = $FORM{'tstate'}; }
if ($FORM{'tmap'}) { $tmpmap = $FORM{'tmap'}; }
if ($FORM{'txcoord'}) { $tmpxcoordinat = $FORM{'txcoord'}; }
if ($FORM{'tycoord'}) { $tmpycoordinat = $FORM{'tycoord'}; }
opendir(DIR, $langdir);
$morelang = 0;
while (my $filesanddirs = readdir(DIR)) {
chomp $filesanddirs;
if (($filesanddirs ne '.') && ($filesanddirs ne '..') && (-e "$langdir/$filesanddirs/Register.lng")) {
$lngsel = "";
if ($filesanddirs eq $language) { $lngsel = qq~selected="selected"~; }
$langopt .= qq~<option value="$filesanddirs"$lngsel>$filesanddirs</option>~;
$morelang++;
}
}
close(DIR);
if ($regcheck) {
&validation_code;
}
if (!$iamguest) { &fatal_error("$register_txt{'2'}"); }
### Distilled Email Domains mod ###
require "$vardir/Distilled_Email_Domains.txt";
if ($adomains){
@domains = split (/\,/, $adomains);
$aedomains = qq~<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td><input type="text" maxlength="30" name="email" value="$tmpregemail" size="15" /></td><td><select name="domain">~;
foreach (@domains){$aedomains .= ($_ =~ m/\@/) ? qq~<option value="$_">$_</option>~ : qq~<option value="\@$_">@$_</option>~;}
$aedomains .= qq~</select></td></tr></table>~;
}
else {$aedomains .= qq~<input type="text" maxlength="60" name="email" value="$tmpregemail" size="45" />~;}
### Distilled Email Domains mod end ###
$yymain .= qq~
<div class="bordercolor" style="padding: 1px;">
<table border="0" width="100%" cellspacing="0" class="bordercolor" cellpadding="4">
<tr class="titlebg">
<td colspan="2">
<img src="$imagesdir/register.gif" alt="$register_txt{'97'}" border="0" /> <span class="text1"><b>$register_txt{'97'}</b> $register_txt{'517'}</span></td>
</tr>
~;
if ($morelang > 1) {
$yymain .= qq~
<tr class="windowbg">
<td class="windowbg" width="100%">
<b>$register_txt{'101'}</b>
</td>
<td>
<form action="$scripturl?action=register" method="post" name="sellanguage">
<select name="reglanguage" onchange="addsettings(); submit();">
$langopt
</select>
<input type="hidden" name="tusername" id="tusername" value="" />
<input type="hidden" name="temail" id="temail" value="" />
<input type="hidden" name="tpasswrd1" id="tpasswrd1" value="" />
<input type="hidden" name="tpasswrd2" id="tpasswrd2" value="" />
<input type="hidden" name="thideemail" id="thideemail" value="" />
<noscript><input type="submit" value="$maintxt{'32'}" /></noscript>
</form>
</td>
</tr>
~;
}
$yymain .= qq~
<tr class="windowbg">
<td class="windowbg" width="100%">
* <b>$register_txt{'98'}:</b>
<br /><span class="small">$register_txt{'520'}</span>
</td>
<td>
<form action="$scripturl?action=register2" method="post" name="creator" enctype="multipart/form-data">
<input type="text" name="username" size="30" value="$tmpregname" maxlength="18"$regstyle />
<input type="hidden" name="_session_id_" id="_session_id_" value="$sessionid" />
<input type="hidden" name="regdate" id="regdate" value="$regdate" />
<input type="hidden" name="language" id="language" value="$language" />
</td>
</tr><tr class="windowbg">
<td>* <b>$register_txt{'69'}:</b>
<br /><span class="small">$register_txt{'679'}</span>
</td>
~;
if ($allow_hide_email == 1) {
$yymain .= qq~
<td valign="middle">
$aedomains <!-- ### Distilled Email Domains mod ### -->
<input type="checkbox" name="hideemail" value="checked"$hidechecked /> $register_txt{'721'}
</td>
~;
} else {
$yymain .= qq~
<td>
$aedomains <!-- ### Distilled Email Domains mod ### -->
<br /><span class="small">$register_txt{'679'}</span>
</td>
~;
}
$yymain .= qq~
</tr>
~;
unless ($emailpassword) {
$yymain .= qq~
<tr class="windowbg">
<td>* <b>$register_txt{'81'}:</b></td>
<td><input type="password" maxlength="30" name="passwrd1" value="$tmpregpasswrd1" size="30" /></td>
</tr><tr class="windowbg">
<td>* <b>$register_txt{'82'}:</b></td>
<td><input type="password" maxlength="30" name="passwrd2" value="$tmpregpasswrd2" size="30" /></td>
</tr>
~;
}
if ($regcheck) {
$yymain .= qq~
<tr class="windowbg">
<td><b>$floodtxt{'1'}:</b></td>
<td>$showcheck</td>
</tr><tr class="windowbg">
<td><b>$floodtxt{'3'}:</b></td>
<td><input type="text" maxlength="30" name="verification" id="verification" size="30" /></td>
</tr>
~;
}
require "$sourcedir/ExtendedProfiles.pl";
$yymain .= &ext_register;
if($regreason && !$regdisable) {
$yymain .= qq~
<tr class="windowbg">
<td>* <b>$approval_txt{'enterreason'}:</b></td>
<td><textarea name="reason" rows=5 cols=80>$approval_txt{'defaultreason'}</textarea></font></td>
</tr>
~;
}
if ($RegAgree) {
if ($language) {
fopen(AGREE, "$langdir/$language/agreement.txt");
} else {
fopen(AGREE, "$langdir/$lang/agreement.txt");
}
@agreement = <AGREE>;
fclose(AGREE);
$fullagree = join("", @agreement);
$fullagree =~ s/\n/<br \/>/g;
$yymain .= qq~
<tr>
<td width="100%" colspan="2" class="windowbg">
</td>
</tr>
<tr>
<td width="100%" colspan="2" class="titlebg">
<img src="$imagesdir/xx.gif" alt="$register_txt{'97'}" border="0" /> <b>$register_txt{'764a'}</b>
</td>
</tr>
<tr>
<td width="100%" colspan="2" class="windowbg2">
<span style="float: left; padding: 5px;">
<br />$fullagree<br /><br />
</span>
</td>
</tr>
<tr>
<td width="100%" colspan="2" class="catbg" align="center">
<b>$register_txt{'585'}</b> <input type="radio" name="regagree" value="yes" />
<b>$register_txt{'586'}</b> <input type="radio" name="regagree" value="no" checked="checked" />
</td>
</tr>
<tr>
<td width="100%" colspan="2" class="windowbg">
</td>
</tr>
~;
}
$yymain .= qq~
<tr class="windowbg">
<td width="320" align="left"><b>$profile_txt{229}</b><br/><span class="small">$profile_txt{'474'}</span></td>
<td align="left">
<script language="JavaScript1.2" type="text/javascript">
<!--
function showimage()
{
if (!document.images) return;
document.images.icons.src="./avatars/"+document.creator.userpic.options[document.creator.userpic.selectedIndex].value;
}
//-->
</script>
<select name="userpic" size="6" onchange="showimage()">
<option value="blank.gif">(no pic)</option>
<option value="akachan.gif">AkaChan</option>
<option value="batman.gif">Batman</option>
<option value="bobafett.gif">Bobafett</option>
<option value="boyandmower.gif">BoyAndMower</option>
<option value="boyandpc.gif">BoyAndPc</option>
<option value="bunny.gif">Bunny</option>
<option value="chairo.gif">Chairo</option>
<option value="conputa.gif">Conputa</option>
<option value="devil.gif">Devil</option>
<option value="digimon.gif">Digimon</option>
<option value="dog.gif">Dog</option>
<option value="duck.gif">Duck</option>
<option value="ganbatteru.gif">Ganbatteru</option>
<option value="garfield.gif">Garfield</option>
<option value="genkonna.gif">GenkOnna</option>
<option value="gopher.gif">Gopher</option>
<option value="iceskatekid.gif">IceSkateKid</option>
<option value="katsu.gif" selected="selected">Katsu</option>
<option value="kid.gif">Kid</option>
<option value="linux.gif">Linux</option>
<option value="lovebird.gif">Lovebird</option>
<option value="makkun.gif">MakKun</option>
<option value="makkushiro.gif">Makkushiro</option>
<option value="mama.gif">Mama</option>
<option value="marukun.gif">MaruKun</option>
<option value="maul.gif">Maul</option>
<option value="meganechan.gif">MeganeChan</option>
<option value="mib.gif">MIB</option>
<option value="oomegane.gif">OoMegane</option>
<option value="paintingbird.gif">PaintingBird</option>
<option value="piero.gif">Piero</option>
<option value="pinkun.gif">PinKun</option>
<option value="samusan.gif">Ryu</option>
<option value="smiley.gif">Smiley</option>
<option value="smurfs.gif">Smurfs</option>
<option value="sonic.gif">Sonic</option>
<option value="speedy.gif">Speedy</option>
<option value="superman.gif">Superman</option>
<option value="sylvester.gif">Sylvester</option>
<option value="thomas.gif">Thomas</option>
<option value="tigger.gif">Tigger</option>
<option value="wacko.gif">Wacko</option>
<option value="winnie.gif">Winnie</option>
<option value="xena.gif">Xena</option>
<option value="yakuza.gif">Yakuza</option>
</select>
<img src="./avatars/blank.gif" name="icons" border="0" hspace="15" alt="" />
</td>
</tr>
<tr class="windowbg">
<td width="320" align="left">
<b>$profile_txt{'475'}</b><br />
<span class="small">
$lang_uapav{'37'} @extupic<br />
$lang_uapav{'35'} $userpic_width $lang_uapav{'34'} $userpic_height $lang_uapav{'33'}<br />
$lang_uapav{'36'}</span>
<td align="left">
<input type="checkbox" name="userpicpersonalcheck" /> <input type="text" name="userpicpersonal" size="45" value="http://" /><br/>
<span class="small">$lang_uapav{'24'}</span><br /><br />
<input type="file" name="file" size="50" /><br />
<span class="small">$lang_uapav{'27'}</span><br />
~;
if ($sizef_useravatars > 0) {
$yymain .= qq~
$lang_uapav{'29'} $sizef_useravatars $lang_uapav{'30'}
~;
}
$yymain .= qq~
</td>
</tr>
~;
$yymain .= qq~
<tr class="titlebg">
<td width="100%" colspan="2">
<br /><center><input type="submit" value="$register_txt{'97'}" /></center>
</td>
</tr>
</table>
</div>
</form>
~;
$yymain .= qq~
<script type="text/javascript" language="JavaScript"> <!--
document.creator.username.focus();
function addsettings() {
var mailpass = $emailpassword;
var hidemail = $allow_hide_email
document.sellanguage.tusername.value = document.creator.username.value;
document.sellanguage.temail.value = document.creator.email.value;
if(hidemail == 1) {
if(document.creator.hideemail.checked) document.sellanguage.thideemail.value = 1;
}
if(mailpass != 1) {
document.sellanguage.tpasswrd1.value = document.creator.passwrd1.value;
document.sellanguage.tpasswrd2.value = document.creator.passwrd1.value;
}
}
//--> </script>
~;
$yytitle = "$register_txt{'97'}";
&template;
exit;
}
sub reg_banning {
$ban_user = $_[0];
$ban_email = $_[1];
if ($username eq "admin" && $iamadmin) { return 0; }
my (@banlist, $banned, $ban_time, $dummy, $line);
my $bansize = -s "$vardir/ban.txt";
if ($bansize > 9) {
fopen(BAN, "$vardir/ban.txt");
@banlist = <BAN>;
fclose(BAN);
} else {
return 0;
}
$ban_time = int(time);
foreach $line (@banlist) {
@banned = ();
chomp $line;
($dummy, $bannedlst) = split(/\|/, $line);
@banned = split(/\,/, $bannedlst);
if ($dummy eq "I") { # IP BANNING
foreach $ipbanned (@banned) {
$str_len = length($ipbanned);
$comp_ip = substr($user_ip, 0, $str_len);
if ($ipbanned eq $comp_ip) {
fopen(LOG, ">>$vardir/ban_log.txt");
print LOG "$ban_time|$user_ip\n";
fclose(LOG);
&UpdateCookie("delete", $ban_user);
$username = "Guest";
&fatal_error("I: $security_txt{'678'}$security_txt{'430'}!");
&redirectinternal;
}
}
} elsif ($dummy eq "E") { # EMAIL BANNING
foreach $emailbanned (@banned) {
if (lc $emailbanned eq lc $ban_email) {
fopen(LOG, ">>$vardir/ban_log.txt");
print LOG "$ban_time|$emailbanned ($user_ip)\n";
fclose(LOG);
&UpdateCookie("delete", $ban_user);
$username = "Guest";
&fatal_error("E: $security_txt{'678'}$security_txt{'430'}!");
&redirectinternal;
}
}
} elsif ($dummy eq "U") { # USERNAME BANNING
foreach $namebanned (@banned) {
if (lc $namebanned eq lc $ban_user) {
fopen(LOG, ">>$vardir/ban_log.txt");
print LOG "$ban_time|$namebanned ($user_ip)\n";
fclose(LOG);
&UpdateCookie("delete", $ban_user);
$username = "Guest";
&fatal_error("U: $security_txt{'678'}$security_txt{'430'}!");
&redirectinternal;
}
}
}
}
}
sub Register2 {
if ($regdisable && $iamguest) { &fatal_error("$register_txt{'3'}"); }
if ($FORM{'regagree'} eq "no") {
$yySetLocation = qq~$scripturl~;
&redirectexit;
}
my %member;
while (($key, $value) = each(%FORM)) {
$value =~ s~\A\s+~~;
$value =~ s~\s+\Z~~;
$value =~ s~[\n\r]~~g;
$member{$key} = $value;
}
$member{'username'} =~ s/\s/_/g;
### Distilled Email Domains mod ###
if ($member{'domain'}) {$member{'email'} = qq($member{'email'}$member{'domain'});}
require "$vardir/Distilled_Email_Domains.txt";
if ($bdomains && !$adomains){
LoadLanguage("Distilled_Email_Domains");
@domains = split (/\,/, $bdomains);
foreach (@domains) {
if ($_ !~ /\@/) {$_ = "\@$_";}
elsif ($_ !~ /^./) {$_ = ".$_";}
&fatal_error("$Distilled_Email_Domains_txt{'8'} $_.") if $member{'email'} =~ m/$_/i;
}
}
### Distilled Email Domains mod end ###
# Make sure users can't register with banned details
®_banning("$member{'username'}", "$member{'email'}");
# check if there is a system hash named like this by checking existence through size
my $hsize = keys(%{ $member{'username'} });
if ($hsize > 0) { &fatal_error("Username prohibited by system"); }
if (length($member{'username'}) > 25) { $member{'username'} = substr($member{'username'}, 0, 25); }
&fatal_error("($member{'username'}) $register_txt{'37'}") if ($member{'username'} eq '');
&fatal_error("($member{'username'}) $register_txt{'99'}") if ($member{'username'} eq '_' || $member{'username'} eq '|');
&fatal_error("$register_txt{'244'} $member{'username'}") if ($member{'username'} =~ /guest/i);
&fatal_error("$register_txt{'240'} $register_txt{'35'} $register_txt{'241'}") if ($member{'username'} !~ /\A[0-9A-Za-z#+-\.@^_]+\Z/);
&fatal_error("$register_txt{'240'} $register_txt{'35'} $register_txt{'241'}") if ($member{'username'} =~ /,/);
&fatal_error("($member{'username'}) $register_txt{'76'}") if ($member{'email'} eq "");
&fatal_error("($member{'username'}) $register_txt{'100'}") if (-e ("$memberdir/$member{'username'}.vars"));
&fatal_error("$register_txt{'1'}") if ($member{'username'} eq $member{'passwrd1'});
$testname = lc $member{'username'};
$testemail = lc $member{'email'};
$is_existing = lc &MemberIndex("check_exist", "$testname");
if ($is_existing eq $testname) { &fatal_error("($member{'username'}) $register_txt{'473'}"); }
$is_existing = lc &MemberIndex("check_exist", "$testemail");
if ($is_existing eq $testemail) { &fatal_error("$register_txt{'730'} ($member{'email'}) $register_txt{'731'}"); }
&ToHTML($member{'email'});
if ($regcheck) {
&fatal_error("$floodtxt{'4'}") if ($member{'verification'} eq '');
&fatal_error("$register_txt{'240'} $floodtxt{'3'} $register_txt{'241'}") if ($member{'verification'} !~ /\A[0-9A-Za-z]+\Z/);
# Trying to figure out the mess we made while encrypting verification
$lastvalue = 13;
$verificationtest = "";
for ($n = 0; $n < length "$member{'regdate'}"; $n++) {
$value = (substr("$member{'regdate'}", $n, 1)) + $lastvalue + 1;
$letter = substr("$member{'_session_id_'}", $value, 1);
$lastvalue = $value;
$verificationtest .= qq~$letter~;
}
&fatal_error("$floodtxt{'4'}") if ($verificationtest ne $member{'verification'});
}
if ($emailpassword) {
srand();
$member{'passwrd1'} = int(rand(100));
$member{'passwrd1'} =~ tr/0123456789/ymifxupbck/;
$_ = int(rand(77));
$_ =~ tr/0123456789/q8dv7w4jm3/;
$member{'passwrd1'} .= $_;
$_ = int(rand(89));
$_ =~ tr/0123456789/y6uivpkcxw/;
$member{'passwrd1'} .= $_;
$_ = int(rand(188));
$_ =~ tr/0123456789/poiuytrewq/;
$member{'passwrd1'} .= $_;
$_ = int(rand(65));
$_ =~ tr/0123456789/lkjhgfdaut/;
$member{'passwrd1'} .= $_;
} else {
&fatal_error("($member{'username'}) $register_txt{'213'}") if ($member{'passwrd1'} ne $member{'passwrd2'});
&fatal_error("($member{'username'}) $register_txt{'91'}") if ($member{'passwrd1'} eq '');
&fatal_error("$register_txt{'240'} $register_txt{'36'} $register_txt{'241'}") if ($member{'passwrd1'} !~ /\A[\s0-9A-Za-z!@#$%\^&*\(\)_\+|`~\-=\\:;'",\.\/?\[\]\{\}]+\Z/);
}
&fatal_error("$register_txt{'240'} $register_txt{'69'} $register_txt{'241'}") if ($member{'email'} !~ /[\w\-\.\+]+\@[\w\-\.\+]+\.(\w{2,4}$)/);
&fatal_error("$register_txt{'500'}") if (($member{'email'} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) || ($member{'email'} !~ /\A.+@\[?(\w|[-.])+\.[a-zA-Z]{2,4}|[0-9]{1,4}\]?\Z/));
fopen(BAN, "$vardir/ban_email.txt");
@banned = <BAN>;
fclose(BAN);
foreach $curban (@banned) {
if ($member{'email'} eq "$curban") { &fatal_error("$register_txt{'678'}$register_txt{'430'}!"); }
}
fopen(RESERVE, "$vardir/reserve.txt") || &fatal_error("$register_txt{'23'} reserve.txt", 1);
@reserve = <RESERVE>;
fclose(RESERVE);
fopen(RESERVECFG, "$vardir/reservecfg.txt") || &fatal_error("$register_txt{'23'} reservecfg.txt", 1);
@reservecfg = <RESERVECFG>;
fclose(RESERVECFG);
for ($a = 0; $a < @reservecfg; $a++) {
chomp $reservecfg[$a];
}
$matchword = $reservecfg[0] eq 'checked';
$matchcase = $reservecfg[1] eq 'checked';
$matchuser = $reservecfg[2] eq 'checked';
$matchname = $reservecfg[3] eq 'checked';
$namecheck = $matchcase eq 'checked' ? $member{'username'} : lc $member{'username'};
foreach $reserved (@reserve) {
chomp $reserved;
$reservecheck = $matchcase ? $reserved : lc $reserved;
if ($matchuser) {
if ($matchword) {
if ($namecheck eq $reservecheck) { &fatal_error("$register_txt{'244'} $reserved"); }
} else {
if ($namecheck =~ $reservecheck) { &fatal_error("$register_txt{'244'} $reserved"); }
}
}
}
&fatal_error("$register_txt{'100'})") if (-e ("$memberdir/$member{'username'}.vars"));
if ($regreason && (!$member{'reason'} || length($member{'reason'}) < 4)) {
&fatal_error("$approval_txt{'errorreason'}");
}
if ($send_welcomeim == 1 && $preregister == 0) {
$messageid = $^T . $$;
fopen(IM, ">$memberdir/$member{'username'}.msg", 1);
print IM "$sendname|$imsubject|$date|$imtext|$messageid|$ENV{'REMOTE_ADDR'}|1\n";
fclose(IM);
}
$encryptopass = &encode_password($member{'passwrd1'});
$reguser = $member{'username'};
$registerdate = &timetostring($date);
$language = $member{'language'};
${$uid.$reguser}{'password'} = $encryptopass;
${$uid.$reguser}{'realname'} = $FORM{'username'};
${$uid.$reguser}{'email'} = lc($member{'email'});
${$uid.$reguser}{'postcount'} = 0;
${$uid.$reguser}{'usertext'} = $defaultusertxt;
${$uid.$reguser}{'userpic'} = "blank.gif";
if ($FORM{'userpicpersonalcheck'}){
#this is a url
if(($FORM{'file'} eq "") && ($FORM{'userpicpersonal'} =~ m/\.gif\Z/i || $FORM{'userpicpersonal'} =~ m/\.jpg\Z/i || $FORM{'userpicpersonal'} =~ m/\.jpeg\Z/i || $FORM{'userpicpersonal'} =~ m/\.png\Z/i)) {
print TEMP "this is a url\n";
#leave it as it is
${$uid.$reguser}{'userpic'} = $FORM{'userpicpersonal'};
}
#this is a uploaded file
if (($FORM{'file'} =~ m/\.gif\Z/i || $FORM{'file'} =~ m/\.jpg\Z/i || $FORM{'file'} =~ m/\.jpeg\Z/i || $FORM{'file'} =~ m/\.png\Z/i)) {
print TEMP "this is an uploaded file\n";
my ($fixname);
&UsersAvatarsUP($reguser);
if ($okatt) {
&UsersAvatarsLOG($reguser,$valueupic2,1);
$fixname=$valueupic;
#get the file extendsion
$fixname =~ m/\.(.*)/;
$fixext = $1;
${$uid.$reguser}{'userpic'} = '/UsersAvatars/'.$reguser.'.'.$fixext;
}
if ($okdelatt) {
&UsersAvatarsLOG($reguser,0,0);
${$uid.$reguser}{'userpic'} = "";
$checked = "";
}
&clear_temp;
}
}
#this is a standard pic from host
elsif(!($FORM{'userpicpersonalcheck'}) && ($FORM{'userpic'} ne "")){
${$uid.$reguser}{'userpic'} = "$FORM{'userpic'}";
}
if(($FORM{'userpic'} eq "") && ($FORM{'userpicpersonal'} eq "") && ($FORM{'file'} eq "")) {
${$uid.$reguser}{'userpic'} = $default_UserPic_val;
}
&fatal_error("$profile_txt{'592'}") if (${$uid.$reguser}{'userpic'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:\+\?\$\&\~\.\,\@/]+\Z^);
${$uid.$reguser}{'regdate'} = $registerdate;
${$uid.$reguser}{'regtime'} = $date;
${$uid.$reguser}{'timeselect'} = $timeselected;
${$uid.$reguser}{'timeoffset'} = $timeoffset;
${$uid.$reguser}{'dsttimeoffset'} = $dstoffset;
${$uid.$reguser}{'hidemail'} = $FORM{'hideemail'};
${$uid.$reguser}{'timeformat'} = qq~MM D+ YYYY @ HH:mm:ss*~;
${$uid.$reguser}{'template'} = $new_template;
${$uid.$reguser}{'language'} = $language;
${$uid.$reguser}{'pageindex'} = qq~1|1|1~;
if ($preregister) {
# If a pre-registration list exists load it
if (-e "$memberdir/memberlist.inactive") {
fopen(INACT, "$memberdir/memberlist.inactive");
@reglist = <INACT>;
fclose(INACT);
}
# check if user isn't already in pre-registration
foreach $regline (@reglist) {
chomp $regline;
($dummy, $dummy, $regmember, $dummy) = split(/\|/, $regline);
if ($reguser eq $regmember) { &fatal_error("$prereg_txt{'13'}"); last; }
}
# create pre-registration .pre file and write log and inactive list
$regpassword = $member{'passwrd1'};
$regtime = int(time);
&validation_code;
$activationcode = substr($sessionid, 0, 20);
require "$sourcedir/ExtendedProfiles.pl";
my $error = ext_validate_submition($reguser,$reguser);
if ($error ne "") { &fatal_error($error); } else { &ext_saveprofile($reguser); }
&UserAccount($reguser, "preregister");
&WriteReason($member{'username'},$member{'reason'},$date) if $regreason;
fopen(INACT, ">$memberdir/memberlist.inactive", 1);
foreach $curreg (@reglist) { print INACT "$curreg\n"; }
print INACT "$regtime|$activationcode|$reguser|$regpassword\n";
fclose(INACT);
fopen(REGLOG, ">>$vardir/registration.log", 1);
print REGLOG "$regtime|N|$member{'username'}\n";
fclose(REGLOG);
&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$prereg_txt{'2'} ter_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
$yymain .= qq~
<br /><br />
<table border="0" width="600" cellspacing="1" class="bordercolor" align="center">
<tr>
<td colspan="2" class="titlebg">
<img src="$imagesdir/register.gif" alt="$prereg_txt{'1a'}" border="0" /> <span class="text1"><b>$prereg_txt{'1a'}</b></span></td>
</tr><tr>
<td colspan="2" class="windowbg" align="center">
<br />$prereg_txt{'1'}<br /><br />
</td>
</tr>~;
require "$sourcedir/LogInOut.pl";
&sharedLogin;
$yymain .= qq~
</table>
<br /><br />
~;
$yytitle = "$prereg_txt{'1a'}";
} else {
require "$sourcedir/ExtendedProfiles.pl";
my $error = ext_validate_submition($reguser,$reguser);
if ($error ne "") { &fatal_error($error); } else { &ext_saveprofile($reguser); }
# &UserAccount($reguser, "register") & MemberIndex("add", $reguser) & FormatUserName($reguser);
if ($needapproval == 3) { # approve before joing
&UserAccount($reguser, "register");
rename("$memberdir/$reguser.vars", "$memberdir/$reguser.wait.vars");
} else {
&UserAccount($reguser, "register") & MemberIndex("add", $reguser) & FormatUserName($reguser);
}
# free register but need approval
&ApprovalSet if $needapproval;
&SendNewRegMail if $needapproval;
&WriteReason($member{'username'},$member{'reason'},$date) if $regreason;
if ($emailpassword) {
&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$register_txt{'719'} $member{'username'}, $register_txt{'492'} name=$useraccount{$member{'username'}}\n\n$register_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
require "$sourcedir/LogInOut.pl";
$sharedLogin_title = "$register_txt{'97'}";
$sharedLogin_text = "$register_txt{'703'}";
$yymain .= qq~<div class="bordercolor" style="width: 400px; margin-bottom: 8px; margin-left: auto; margin-right: auto;">~;
$shared_log = &sharedLogin;
$yymain .= qq~$shared_log~;
$yymain .= qq~</div>~;
} else {
if ($emailwelcome) {
&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$register_txt{'719'} $member{'username'}, $register_txt{'492'} name=$useraccount{$member{'username'}}\n\n$register_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
}
$yymain .= qq~
<br /><br />
<form action="$scripturl?action=login2" method="post">
<table border="0" width="300" cellspacing="1" class="bordercolor" align="center">
<tr>
<td class="titlebg">
<img src="$imagesdir/register.gif" alt="$register_txt{'97'}" border="0" /> <span class="text1"><b>$register_txt{'97'}</b></span></td>
</tr><tr>
<td class="windowbg" align="center">
<br />$register_txt{'431'}<br /><br />
<input type="hidden" name="username" value="$member{'username'}" />
<input type="hidden" name="passwrd" value="$member{'passwrd1'}" />
<input type="hidden" name="cookielength" value="$Cookie_Length" />
<input type="submit" value="$register_txt{'34'}" />
</td>
</tr>
</table>
</form>
<br /><br />
~;
}
$yytitle = "$register_txt{'245'}";
}
&template;
exit;
}
sub activation_check {
$changed = 0;
$timer = int(time);
$timespan = $preregspan * 3600;
fopen(INACT, "$memberdir/memberlist.inactive");
@actlist = <INACT>;
fclose(INACT);
# check if user is in pre-registration and check activation key
foreach $regline (@actlist) {
($regtime, $dummy, $regmember, $dummy) = split(/\|/, $regline);
$difftime = $timer - $regtime;
if ($difftime > $timespan) {
$changed = 1;
unlink "$memberdir/$regmember.pre";
# add entry to registration log
fopen(REGLOG, ">>$vardir/registration.log", 1);
print REGLOG "$timer|T|$regmember\n";
fclose(REGLOG);
} else {
# update non activate user list
# write valid registration to the list again
push(@outlist, $regline);
}
}
if ($changed) {
# re-open inactive list for update if changed
fopen(INACT, ">$memberdir/memberlist.inactive", 1);
print INACT @outlist;
fclose(INACT);
}
}
sub user_activation {
$changed = 0;
$reguser = $INFO{'username'};
$activationkey = $INFO{'activationkey'};
if (!-e "$memberdir/$reguser.pre" && -e "$memberdir/$reguser.vars") { &fatal_error("$prereg_txt{'14a'}"); }
if (!-e "$memberdir/$reguser.pre") { &fatal_error("$prereg_txt{'14'}"); }
# If a pre-registration list exists load it
if (-e "$memberdir/memberlist.inactive") {
fopen(INACT, "$memberdir/memberlist.inactive");
@reglist = <INACT>;
fclose(INACT);
}
# check if user is in pre-registration and check activation key
foreach $regline (@reglist) {
($regtime, $testkey, $regmember, $regpassword) = split(/\|/, $regline);
# update non activate user list
if ($regmember ne $reguser) {
push(@chnglist, $regline);
} else {
if ($activationkey ne $testkey) {
push(@chnglist, $regline);
# add entry to registration log
my $logtime = int(time);
fopen(REGLOG, ">>$vardir/registration.log", 1);
print REGLOG "$logtime|E|$reguser\n";
fclose(REGLOG);
&fatal_error("$prereg_txt{'10'}");
} else {
$changed = 1;
# user is in list and the keys match, so let him/her in
if ($needapproval == 3) { # 3: approval before join;
rename("$memberdir/$reguser.pre", "$memberdir/$reguser.wait.vars");
} else {
# user is in list and the keys match, so let him/her in
rename("$memberdir/$reguser.pre", "$memberdir/$reguser.vars");
&UserCheck($reguser, "email");
&MemberIndex("add", $reguser);
}
&ApprovalSet if $needapproval;
&SendNewRegMail if $needapproval;
# add entry to registration log
my $logtime = int(time);
fopen(REGLOG, ">>$vardir/registration.log", 1);
print REGLOG "$logtime|A|$reguser\n";
fclose(REGLOG);
if ($send_welcomeim == 1) {
$messageid = $^T . $$;
fopen(IM, ">$memberdir/$reguser.msg", 1);
print IM "$sendname|$imsubject|$date|$imtext|$messageid|$ENV{'REMOTE_ADDR'}|1\n";
fclose(IM);
}
if ($emailpassword) {
LoadUser("$reguser");
&sendmail(${$uid.$reguser}{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $reguser!\n\n$register_txt{'719'} $reguser, $register_txt{'492'} eguser\n\n$register_txt{'130'}");
$yymain .= qq~<br /><table border="0" width="100%" cellspacing="1" class="bordercolor" align="center">~;
$sharedLogin_title = "$register_txt{'97'}";
$sharedLogin_text = "$register_txt{'703'}";
$yymain .= qq~</table>~;
} else {
if ($emailwelcome) {
LoadUser("$reguser");
&sendmail(${$uid.$reguser}{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $reguser!\n\n$register_txt{'719'} $reguser, $register_txt{'492'} eguser\n\n$register_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
}
}
}
}
}
if ($changed) {
# if changed write new inactive list
fopen(INACT, ">$memberdir/memberlist.inactive");
print INACT @chnglist;
fclose(INACT);
}
$yymain .= qq~
<br /><br />
<table border="0" width="600" cellspacing="1" class="bordercolor" align="center">
<tr>
<td colspan="2" class="titlebg">
<img src="$imagesdir/register.gif" alt="$prereg_txt{'1a'}" border="0" /> <span class="text1"><b>$prereg_txt{'1a'}</b></span></td>
</tr><tr>
<td colspan="2" class="windowbg" align="center">
<br />$prereg_txt{'5'}<br /><br />~;
if ($emailpassword eq "1") {
$yymain .= qq~$register_txt{'703'}<br /> <br />~;
}
$yymain .= qq~
</td>
</tr>~;
require "$sourcedir/LogInOut.pl";
&sharedLogin;
$yymain .= qq~
</table>
<br /><br />
~;
$yytitle = "$prereg_txt{'5'}";
&template;
exit;
}
sub ApprovalSet {
fopen(APPROVAL, ">$memberdir/$reguser.wait");
print APPROVAL $user_ip;
fclose(APPROVAL);
fopen (WAIT, ">>$memberdir/waitlist.txt");
print WAIT "$reguser\n";
fclose (WAIT);
# language text update
if ($needapproval == 1) {
$register_txt{'130'} .= qq~\n\n$approval_txt{'displayregsoft'}~;
$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
$prereg_txt{'5'} .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
}
elsif ($needapproval == 2) {
$register_txt{'130'} .= qq~\n\n$approval_txt{'displayreghard'}~;
$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayreghard'}~;
$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayreghard'}~;
$prereg_txt{'5'} .= qq~<br /><br />$approval_txt{'displayreghard'}~;
}
elsif ($needapproval == 3) {
$register_txt{'130'} .= qq~\n\n$approval_txt{'displayregbefore'}~;
$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayregbefore'}~;
$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayregbefore'}~;
$prereg_txt{'5'} = qq~$approval_txt{'displayregbefore_act'}<br /><br />$approval_txt{'displayregbefore'}~;
}
}
sub SendNewRegMail {
return if !$newregmail;
my @newregmailtolist = split(/\,/, $newregmailto);
foreach $mailtouser (@newregmailtolist) {
&LoadUser($mailtouser);
next if ! $uid.$mailtouser{'email'};
$emailsubject = $approval_txt{'newreg'};
$emailsubject .= ": $mbname";
$emailtext = qq~$approval_txt{'newmember'}$reguser\n\n~;
$emailtext .= \n~;
$emailtext .= qq~$approval_txt{'or'}\n~;
$emailtext .= profile;username=$reguser\n\n~;
$emailtext .= mbers~ if $needapproval;
&sendmail(${$uid.$mailtouser}{'email'}, $emailsubject, $emailtext);
}
}
sub WriteReason {
return if !$regreason;
# CheckReason;
$_[1] =~ s/\|/\|/g;
$convertstr = $_[1];
$convertcut = 500;
&CountChars;
$_[1] = $convertstr;
fopen(REASON, ">>$memberdir/regreason.txt");
print REASON qq~$_[0]|$_[1]|$_[2]\n~;
fclose(REASON);
}
1;
I have a list of mods installed in my profile but don't have the AdminCenter update installed. I notice that you removed it from the list of requirements?
Thanks for your help with this