1############################################################################### 2# Sessions.pm # 3# $Date: 12.02.14 $ # 4############################################################################### 5# YaBB: Yet another Bulletin Board # 6# Open-Source Community Software for Webmasters # 7# Version: YaBB 2.6.11 # 8# Packaged: December 2, 2014 # 9# Distributed by: http://www.yabbforum.com # 10# =========================================================================== # 11# Copyright (c) 2000-2014 YaBB (www.yabbforum.com) - All Rights Reserved. # 12# Software by: The YaBB Development Team # 13# with assistance from the YaBB community. # 14############################################################################### 15our $VERSION = '2.6.11'; 16 17$sessionspmver = 'YaBB 2.6.11 $Revision: 1611 $'; 18if ( $action eq 'detailedversion' ) { return 1; } 19 20LoadLanguage('Sessions'); 21get_micon(); 22get_template('Other'); 23 24sub SessionReval { 25 if ( ${ $uid . $username }{'sesquest'} eq q{} 26 || ${ $uid . $username }{'sesquest'} eq 'password' ) 27 { 28 $sesremark = 29 qq~<br /><br /><fieldset><i>$session_txt{'10'}</i></fieldset>~; 30 $sesquestion = 'password'; 31 $sestype = 'password'; 32 } 33 else { 34 $sesremark = q{}; 35 $sesquestion = "${$uid.$username}{'sesquest'}"; 36 $sestype = 'text'; 37 } 38 39 $yymain .= $my_sessions; 40 $yymain =~ s/{yabb sesremark}/$sesremark/sm; 41 $yymain =~ s/{yabb sestype}/$sestype/sm; 42 $yymain =~ s/{yabb sesstext3}/$session_txt{'3'}/sm; 43 $yymain =~ s/{yabb sesstext4}/$session_txt{'4'}/sm; 44 $yymain =~ s/{yabb sesquestion}/$sesquest_txt{$sesquestion}/sm; 45 $yymain =~ s/{yabb sesredir}/$INFO{'sesredir'}/sm; 46 $yytitle = "$img_txt{'34a'}"; 47 template(); 48 return; 49} 50 51sub SessionReval2 { 52# require Sources::Decoder; 53 $FORM{'cookielength'} = 360; 54 $FORM{'cookieneverexp'} = 1; 55 if ( $FORM{'sesanswer'} eq q{} ) { fatal_error('no_secret_answer'); } 56 if ( ${ $uid . $username }{'sesquest'} eq q{} 57 || ${ $uid . $username }{'sesquest'} eq 'password' ) 58 { 59 $question = ${ $uid . $username }{'password'}; 60 $answer = encode_password("$FORM{'sesanswer'}"); 61 chomp $answer; 62 } 63 else { 64 $question = encode_password( ${ $uid . $username }{'sesanswer'} ); 65 $answer = encode_password( $FORM{'sesanswer'} ); 66 67 # bug fix courtesy Derek Barnstorm; 68 chomp $answer; 69 } 70 if ( $answer ne $question ) { 71 UpdateCookie('delete'); 72 73 $username = 'Guest'; 74 $iamguest = '1'; 75 $iamadmin = q{}; 76 $iamgmod = q{}; 77 $password = q{}; 78 $yyim = q{}; 79 local $ENV{'HTTP_COOKIE'} = q{}; 80 $yyuname = q{}; 81 $formsession = cloak("$mbname$username"); 82 83 require Sources::LogInOut; 84 $sharedLogin_text = $session_txt{'6'}; 85 $action = 'login'; 86 Login(); 87 } 88 else { 89 $iamadmin = 90 ${ $uid . $username }{'position'} eq 'Administrator' ? 1 : 0; 91 $iamgmod = 92 ${ $uid . $username }{'position'} eq 'Global Moderator' ? 1 : 0; 93 $sessionvalid = 1; 94 } 95 if ( $FORM{'cookielength'} < 1 || $FORM{'cookielength'} > 9999 ) { 96 $FORM{'cookielength'} = $Cookie_Length; 97 } 98 if ( !$FORM{'cookieneverexp'} ) { $ck{'len'} = "\+$FORM{'cookielength'}m"; } 99 else { $ck{'len'} = 'Sunday, 17-Jan-2038 00:00:00 GMT'; } 100 ${ $uid . $username }{'session'} = encode_password($user_ip); 101 chomp ${ $uid . $username }{'session'}; 102 UserAccount( $username, 'update' ); 103 UpdateCookie( 104 'write', $username, 105 ${ $uid . $username }{'password'}, 106 ${ $uid . $username }{'session'}, 107 q{/}, $ck{'len'} 108 ); 109 110 $redir = q{}; 111 if ( $FORM{'sredir'} ) { 112 my $tmpredir = $FORM{'sredir'}; 113 $tmpredir =~ s/\~/\=/gxsm; 114 $tmpredir =~ s/x3B/;/gxsm; 115 $tmpredir =~ s/search2/search/gxsm; 116 $redir = qq~?$tmpredir~; 117 } 118 $yySetLocation = qq~$scripturl$redir~; 119 redirectexit(); 120 return; 121} 122 1231; 124