Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
Get the function and file to include - if its not there, do the board index.
if isset_REQUEST[action] || issetactionArray[_REQUEST[action]]
{ Catch the action with the theme?
if emptysettings[catch_action] {
require_oncesourcedir . Themes.php; return WrapAction;
} Fall through to the board index then...
require_oncesourcedir . BoardIndex.php; return BoardIndex;
} Otherwise, it was set - so lets go to that action.
require_oncesourcedir . . actionArray[_REQUEST[action]][0];
return actionArray[_REQUEST[action]][1]; }
?
8. Register
?php Simple Machines Forum SMF
package SMF author Simple Machines http:www.simplemachines.org
copyright 2011 Simple Machines license http:www.simplemachines.orgaboutsmflicense.php BSD
version 2.0.7 if definedSMF
dieHacking attempt...;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
This file has two main jobs, but they really are one. It registers new members, and it helps the administrator moderate member
registrations. Similarly, it handles account activation as well.
void Register
void Register2
void Activate
void CoppaForm
void VerificationCode Show the verification code or let it hear.
void RegisterCheckUsername Begin the registration process.
function Registerreg_errors = array {
global txt, boarddir, context, settings, modSettings, user_info; global language, scripturl, smcFunc, sourcedir, smcFunc,
cur_profile; Is this an incoming AJAX check?
if isset_GET[sa] _GET[sa] == usernamecheck return RegisterCheckUsername;
Check if the administrator has it disabled. if emptymodSettings[registration_method]
modSettings[registration_method] == 3 fatal_lang_errorregistration_disabled, false;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
If this user is an admin - redirect them to the admin registration page.
if allowedTomoderate_forum user_info[is_guest] redirectexitaction=admin;area=regcenter;sa=register;
You are not a guest, so you are a member - and members dont get to register twice
elseif emptyuser_info[is_guest] redirectexit;
loadLanguageLogin; loadTemplateRegister;
Do we need them to agree to the registration agreement, first? context[require_agreement] =
emptymodSettings[requireAgreement]; context[registration_passed_agreement] =
empty_SESSION[registration_agreed]; context[show_coppa] = emptymodSettings[coppaAge];
Under age restrictions? if context[show_coppa]
{ context[skip_coppa] = false;
context[coppa_agree_above] = sprintftxt[agreement_agree_coppa_above], modSettings[coppaAge];
context[coppa_agree_below] = sprintftxt[agreement_agree_coppa_below], modSettings[coppaAge];
} What step are we at?
current_step = isset_REQUEST[step] ? int _REQUEST[step] : context[require_agreement] ? 1 : 2;
Does this user agree to the registation agreement? if current_step == 1 isset_POST[accept_agreement] ||
isset_POST[accept_agreement_coppa] {
context[registration_passed_agreement] = _SESSION[registration_agreed] = true;
current_step = 2; Skip the coppa procedure if the user says hes old enough.
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
if context[show_coppa] {
_SESSION[skip_coppa] = empty_POST[accept_agreement];
Are they saying theyre under age, while under age registration is disabled?
if emptymodSettings[coppaType] empty_SESSION[skip_coppa]
{ loadLanguageLogin;
fatal_lang_errorunder_age_registration_prohibited, false, arraymodSettings[coppaAge];
} }
} Make sure they dont squeeze through without agreeing.
elseif current_step 1 context[require_agreement] context[registration_passed_agreement]
current_step = 1; Show the user the right form.
context[sub_template] = current_step == 1 ? registration_agreement : registration_form;
context[page_title] = current_step == 1 ? txt[registration_agreement] : txt[registration_form];
Add the register chain to the link tree. context[linktree][] = array
url = scripturl . ?action=register, name = txt[register],
; If you have to agree to the agreement, it needs to be fetched from the
file. if context[require_agreement]
{ Have we got a localized one?
if file_existsboarddir . agreement. . user_info[language] . .txt
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
context[agreement] = parse_bbcfile_get_contentsboarddir . agreement. . user_info[language] .
.txt, true, agreement_ . user_info[language]; elseif file_existsboarddir . agreement.txt
context[agreement] = parse_bbcfile_get_contentsboarddir . agreement.txt, true, agreement;
else context[agreement] = ;
} if emptymodSettings[userLanguage]
{ selectedLanguage = empty_SESSION[language] ?
language : _SESSION[language]; Do we have any languages?
if emptycontext[languages] getLanguages;
Try to find our selected language. foreach context[languages] as key = lang
{ context[languages][key][name] =
strtrlang[name], array-utf8 = ; Found it
if selectedLanguage == lang[filename] context[languages][key][selected] = true;
} }
Any custom fields we want filled in? require_oncesourcedir . Profile.php;
loadCustomFields0, register; Or any standard ones?
if emptymodSettings[registration_fields] {
require_oncesourcedir . Profile-Modify.php; Setup some important context.
loadLanguageProfile;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
loadTemplateProfile; context[user][is_owner] = true;
Here, and here only, emulate the permissions the user would have to do this.
user_info[permissions] = array_mergeuser_info[permissions], arrayprofile_account_own,
profile_extra_own; reg_fields = explode,, modSettings[registration_fields];
We might have had some submissions on this front - go check.
foreach reg_fields as field if isset_POST[field]
cur_profile[field] = smcFunc[htmlspecialchars]_POST[field];
Load all the fields in question. setupProfileContextreg_fields;
} Generate a visual verification code to make sure the user is no bot.
if emptymodSettings[reg_verification] {
require_oncesourcedir . Subs-Editor.php; verificationOptions = array
id = register, ;
context[visual_verification] = create_control_verificationverificationOptions;
context[visual_verification_id] = verificationOptions[id]; }
Otherwise we have nothing to show. else
context[visual_verification] = false; Are they coming from an OpenID login attempt?
if empty_SESSION[openid][verified] empty_SESSION[openid][openid_uri]
{ context[openid] = _SESSION[openid][openid_uri];
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
context[username] = smcFunc[htmlspecialchars]empty_POST[user] ? _POST[user] :
_SESSION[openid][nickname]; context[email] =
smcFunc[htmlspecialchars]empty_POST[email] ? _POST[email] : _SESSION[openid][email];
} See whether we have some prefiled values.
else {
context += array openid = isset_POST[openid_identifier] ?
_POST[openid_identifier] : , username = isset_POST[user] ?
smcFunc[htmlspecialchars]_POST[user] : , email = isset_POST[email] ?
smcFunc[htmlspecialchars]_POST[email] : , ;
} Why isnt this a simple set operation?
Were there any errors? context[registration_errors] = array;
if emptyreg_errors foreach reg_errors as error
context[registration_errors][] = error; }
Actually register the member. function Register2verifiedOpenID = false
{
global scripturl, txt, modSettings, context, sourcedir; global user_info, options, settings, smcFunc;
Start collecting together any errors. reg_errors = array;
Did we save some open ID fields? if verifiedOpenID emptycontext[openid_save_fields]
{ foreach context[openid_save_fields] as id = value
_POST[id] = value;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
} You cant register if its disabled.
if emptymodSettings[registration_method] modSettings[registration_method] == 3
fatal_lang_errorregistration_disabled, false; Things we dont do for people who have already confirmed their
OpenID allegances via register. if verifiedOpenID
{ Well, if you dont agree, you cant register.
if emptymodSettings[requireAgreement] empty_SESSION[registration_agreed]
redirectexit; Make sure they came from somewhere, have a session.
if isset_SESSION[old_url] redirectexitaction=register;
Are they under age, and under age users are banned? if emptymodSettings[coppaAge]
emptymodSettings[coppaType] empty_SESSION[skip_coppa] {
This should be put in Errors, imho. loadLanguageLogin;
fatal_lang_errorunder_age_registration_prohibited, false, arraymodSettings[coppaAge];
} Check whether the visual verification code was entered
correctly. if emptymodSettings[reg_verification]
{ require_oncesourcedir . Subs-Editor.php;
verificationOptions = array id = register,
; context[visual_verification] =
create_control_verificationverificationOptions, true; if is_arraycontext[visual_verification]
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
{ loadLanguageErrors;
foreach context[visual_verification] as error
reg_errors[] = txt[error_ . error]; }
} }
foreach _POST as key = value {
if is_array_POST[key] _POST[key] =
htmltrim__recursivestr_replacearray\n, \r, , _POST[key]; }
Collect all extra registration fields someone might have filled in. possible_strings = array
website_url, website_title, aim, yim,
location, birthdate, time_format,
buddy_list, pm_ignore_list,
smiley_set, signature, personal_text, avatar,
lngfile, secret_question, secret_answer,
; possible_ints = array
pm_email_notify, notify_types,
icq, gender,
id_theme, ;
possible_floats = array time_offset,
; possible_bools = array
notify_announcements, notify_regularity, notify_send_body, hide_email, show_online,
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
; if isset_POST[secret_answer] _POST[secret_answer] =
_POST[secret_answer] = md5_POST[secret_answer]; Needed for isReservedName and registerMember.
require_oncesourcedir . Subs-Members.php; Validation... even if were not a mall.
if isset_POST[real_name] emptymodSettings[allow_editDisplayName] ||
allowedTomoderate_forum {
_POST[real_name] = trimpreg_replace~[\t\n\r \x0B\0 . context[utf8] ? context[server][complex_preg_chars] ?
\x{A0}\x{AD}\x{2000}-\x{200F}\x{201F}\x{202F}\x{3000}\x{FEFF} : \xC2\xA0\xC2\xAD\xE2\x80\x80-
\xE2\x80\x8F\xE2\x80\x9F\xE2\x80\xAF\xE2\x80\x9F\xE3\x80\x80\xEF\xB B\xBF : \x00-\x08\x0B\x0C\x0E-\x19\xA0 . ]+~ . context[utf8] ? u :
, , _POST[real_name];
if trim_POST[real_name] = isReservedName_POST[real_name]
smcFunc[strlen]_POST[real_name] 60 possible_strings[] = real_name;
} if isset_POST[msn] preg_match~[0-9A-Za-z=_+\-][0-9A-
Za-z=_\+\-\.][\w\-]+\.[\w\-]+\.[\w]{2,6}~, _POST[msn] = 0 profile_strings[] = msn;
Handle a string as a birthdate... if isset_POST[birthdate] _POST[birthdate] =
_POST[birthdate] = strftimeY-m-d, strtotime_POST[birthdate];
Or birthdate parts... elseif empty_POST[bday1] empty_POST[bday2]
_POST[birthdate] = sprintf04d-02d-02d, empty_POST[bday3] ? 0 : int _POST[bday3], int _POST[bday1],
int _POST[bday2];
By default assume email is hidden, only show it if we tell it to. _POST[hide_email] = empty_POST[allow_email] ? 0 : 1;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
Validate the passed language file. if isset_POST[lngfile]
emptymodSettings[userLanguage] {
Do we have any languages? if emptycontext[languages]
getLanguages; Did we find it?
if issetcontext[languages][_POST[lngfile]] _SESSION[language] = _POST[lngfile];
else unset_POST[lngfile];
} else
unset_POST[lngfile]; Some of these fields we may not want.
if emptymodSettings[registration_fields] {
But we might want some of them if the admin asks for them. standard_fields = arrayicq, msn, aim, yim, location,
gender; reg_fields = explode,, modSettings[registration_fields];
exclude_fields = array_diffstandard_fields, reg_fields; Website is a little different
if in_arraywebsite, reg_fields exclude_fields = array_mergeexclude_fields,
arraywebsite_url, website_title; We used to accept signature on registration but its being
abused by spammers these days, so no more. exclude_fields[] = signature;
} else
exclude_fields = arraysignature, icq, msn, aim, yim, location, gender, website_url, website_title;
possible_strings = array_diffpossible_strings, exclude_fields;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
possible_ints = array_diffpossible_ints, exclude_fields; possible_floats = array_diffpossible_floats, exclude_fields;
possible_bools = array_diffpossible_bools, exclude_fields; Set the options needed for registration.
regOptions = array interface = guest,
username = empty_POST[user] ? _POST[user] : , email = empty_POST[email] ? _POST[email] : ,
password = empty_POST[passwrd1] ? _POST[passwrd1] : ,
password_check = empty_POST[passwrd2] ? _POST[passwrd2] : ,
openid = empty_POST[openid_identifier] ? _POST[openid_identifier] : ,
auth_method = empty_POST[authenticate] ? _POST[authenticate] : ,
check_reserved_name = true, check_password_strength = true,
check_email_ban = true, send_welcome_email =
emptymodSettings[send_welcomeEmail], require = emptymodSettings[coppaAge]
verifiedOpenID empty_SESSION[skip_coppa] ? coppa : emptymodSettings[registration_method] ? nothing :
modSettings[registration_method] == 1 ? activation : approval,
extra_register_vars = array, theme_vars = array,
; Include the additional options that might have been filled in.
foreach possible_strings as var if isset_POST[var]
regOptions[extra_register_vars][var] = smcFunc[htmlspecialchars]_POST[var], ENT_QUOTES;
foreach possible_ints as var if isset_POST[var]
regOptions[extra_register_vars][var] = int _POST[var];
foreach possible_floats as var if isset_POST[var]
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
regOptions[extra_register_vars][var] = float _POST[var];
foreach possible_bools as var if isset_POST[var]
regOptions[extra_register_vars][var] = empty_POST[var] ? 0 : 1;
Registration options are always default options... if isset_POST[default_options]
_POST[options] = isset_POST[options] ? _POST[options] + _POST[default_options] : _POST[default_options];
regOptions[theme_vars] = isset_POST[options] is_array_POST[options] ? _POST[options] : array;
Make sure they are clean, dammit regOptions[theme_vars] =
htmlspecialchars__recursiveregOptions[theme_vars]; If Quick Reply hasnt been set then set it to be shown but collapsed.
if issetregOptions[theme_vars][display_quick_reply] regOptions[theme_vars][display_quick_reply] = 1;
Check whether we have fields that simply MUST be displayed? request = smcFunc[db_query],
SELECT col_name, field_name, field_type, field_length, mask, show_reg
FROM {db_prefix}custom_fields WHERE active = {int:is_active},
array is_active = 1,
; custom_field_errors = array;
while row = smcFunc[db_fetch_assoc]request {
Dont allow overriding of the theme variables. if issetregOptions[theme_vars][row[col_name]]
unsetregOptions[theme_vars][row[col_name]]; Not actually showing it then?
if row[show_reg] continue;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
Prepare the value value = isset_POST[customfield][row[col_name]] ?
trim_POST[customfield][row[col_name]] : ; We only care for text fields as the others are valid to be
empty. if in_arrayrow[field_type], arraycheck, select, radio
{ Is it too long?
if row[field_length] row[field_length] smcFunc[strlen]value
custom_field_errors[] = arraycustom_field_too_long, arrayrow[field_name],
row[field_length];
Any masks to apply? if row[field_type] == text
emptyrow[mask] row[mask] = none {
We never error on this - just ignore it at the moment...
if row[mask] == email preg_match~[0-9A-Za-z=_+\-][0-9A-Za-z=_\+\-\.][\w\-]+\.[\w\-
]+\.[\w]{2,6}~, value === 0 || strlenvalue 255 custom_field_errors[] =
arraycustom_field_invalid_email, arrayrow[field_name]; elseif row[mask] == number
preg_match~[\d]~, value custom_field_errors[] =
arraycustom_field_not_number, arrayrow[field_name]; elseif substrrow[mask], 0, 5 == regex
trimvalue = preg_matchsubstrrow[mask], 5, value === 0 custom_field_errors[] =
arraycustom_field_inproper_format, arrayrow[field_name]; }
} Is this required but not there?
if trimvalue == row[show_reg] 1 custom_field_errors[] = arraycustom_field_empty,
arrayrow[field_name];
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
} smcFunc[db_free_result]request;
Process any errors. if emptycustom_field_errors
{ loadLanguageErrors;
foreach custom_field_errors as error reg_errors[] = vsprintftxt[error_ . error[0]],
error[1]; }
Lets check for other errors before trying to register the member. if emptyreg_errors
{ _REQUEST[step] = 2;
return Registerreg_errors; }
If theyre wanting to use OpenID we need to validate them first. if empty_SESSION[openid][verified]
empty_POST[authenticate] _POST[authenticate] == openid {
What do we need to save? save_variables = array;
foreach _POST as k = v if in_arrayk, arraysc, sesc,
context[session_var], passwrd1, passwrd2, regSubmit save_variables[k] = v;
require_oncesourcedir . Subs-OpenID.php; smf_openID_validate_POST[openid_identifier], false,
save_variables; }
If weve come from OpenID set up some default stuff. elseif verifiedOpenID || empty_POST[openid_identifier]
_POST[authenticate] == openid {
regOptions[username] = empty_POST[user] trim_POST[user] = ? _POST[user] :
_SESSION[openid][nickname];
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
regOptions[email] = empty_POST[email] trim_POST[email] = ? _POST[email] :
_SESSION[openid][email]; regOptions[auth_method] = openid;
regOptions[openid] = empty_POST[openid_identifier] ? _POST[openid_identifier] : _SESSION[openid][openid_uri];
} memberID = registerMemberregOptions, true;
What there actually an error of some kind dear boy? if is_arraymemberID
{ reg_errors = array_mergereg_errors, memberID;
_REQUEST[step] = 2; return Registerreg_errors;
} Do our spam protection now.
spamProtectionregister; Well do custom fields after as then we get to use the helper
function if empty_POST[customfield]
{ require_oncesourcedir . Profile.php;
require_oncesourcedir . Profile-Modify.php; makeCustomFieldChangesmemberID, register;
} If COPPA has been selected then things get complicated, setup the
template. if emptymodSettings[coppaAge]
empty_SESSION[skip_coppa] redirectexitaction=coppa;member= . memberID;
Basic template variable setup. elseif emptymodSettings[registration_method]
{ loadTemplateRegister;
context += array page_title = txt[register],
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
title = txt[registration_successful], sub_template = after,
description = modSettings[registration_method] == 2 ? txt[approval_after_registration] : txt[activate_after_registration]
; }
else {
call_integration_hookintegrate_activate, arrayrow[member_name];
setLoginCookie60 modSettings[cookieTime], memberID, sha1sha1strtolowerregOptions[username] .
regOptions[password] . regOptions[register_vars][password_salt];
redirectexitaction=login2;sa=check;member= . memberID, context[server][needs_login_fix];
} }
function Activate {
global context, txt, modSettings, scripturl, sourcedir, smcFunc, language;
loadLanguageLogin; loadTemplateLogin;
if empty_REQUEST[u] empty_POST[user] {
if emptymodSettings[registration_method] || modSettings[registration_method] == 3
fatal_lang_errorno_access, false; context[member_id] = 0;
context[sub_template] = resend; context[page_title] = txt[invalid_activation_resend];
context[can_activate] = emptymodSettings[registration_method] ||
modSettings[registration_method] == 1; context[default_username] = isset_GET[user] ?
_GET[user] : ;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
return; }
Get the code from the database... request = smcFunc[db_query],
SELECT id_member, validation_code, member_name, real_name, email_address, is_activated, passwd, lngfile
FROM {db_prefix}members . empty_REQUEST[u] ? WHERE member_name = {string:email_address} OR
email_address = {string:email_address} : WHERE id_member = {int:id_member} .
LIMIT 1, array
id_member = isset_REQUEST[u] ? int _REQUEST[u] : 0,
email_address = isset_POST[user] ? _POST[user] : ,
; Does this user exist at all?
if smcFunc[db_num_rows]request == 0 {
context[sub_template] = retry_activate; context[page_title] = txt[invalid_userid];
context[member_id] = 0; return;
} row = smcFunc[db_fetch_assoc]request;
smcFunc[db_free_result]request; Change their email address? they probably tried a fake one first :P.
if isset_POST[new_email], _REQUEST[passwd] sha1strtolowerrow[member_name] . _REQUEST[passwd] ==
row[passwd] row[is_activated] == 0 || row[is_activated] == 2 {
if emptymodSettings[registration_method] || modSettings[registration_method] == 3
fatal_lang_errorno_access, false;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
Separate the sprintf? if preg_match~[0-9A-Za-z=_+\-][0-9A-Za-z=_\+\-
\.][\w\-]+\.[\w\-]+\.[\w]{2,6}~, _POST[new_email] == 0 fatal_errorsprintftxt[valid_email_needed],
htmlspecialchars_POST[new_email], false; Make sure their email isnt banned.
isBannedEmail_POST[new_email], cannot_register, txt[ban_register_prohibited];
Ummm... dont even dare try to take someone elses email request = smcFunc[db_query],
SELECT id_member FROM {db_prefix}members
WHERE email_address = {string:email_address} LIMIT 1,
array email_address = _POST[new_email],
; Separate the sprintf?
if smcFunc[db_num_rows]request = 0 fatal_lang_erroremail_in_use, false,
arrayhtmlspecialchars_POST[new_email]; smcFunc[db_free_result]request;
updateMemberDatarow[id_member], arrayemail_address = _POST[new_email];
row[email_address] = _POST[new_email]; email_change = true;
} Resend the password, but only if the account wasnt activated yet.
if empty_REQUEST[sa] _REQUEST[sa] == resend row[is_activated] == 0 || row[is_activated] == 2
isset_REQUEST[code] || _REQUEST[code] == {
require_oncesourcedir . Subs-Post.php; replacements = array
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
REALNAME = row[real_name], USERNAME = row[member_name],
ACTIVATIONLINK = scripturl . ?action=activate;u= . row[id_member] . ;code= . row[validation_code],
ACTIVATIONLINKWITHOUTCODE = scripturl . ?action=activate;u= . row[id_member],
ACTIVATIONCODE = row[validation_code], FORGOTPASSWORDLINK = scripturl .
?action=reminder, ;
emaildata = loadEmailTemplateresend_activate_message, replacements, emptyrow[lngfile] || emptymodSettings[userLanguage]
? language : row[lngfile];
sendmailrow[email_address], emaildata[subject], emaildata[body], null, null, false, 0;
context[page_title] = txt[invalid_activation_resend]; This will ensure we dont actually get an error message if it
works context[error_title] = ;
fatal_lang_erroremptyemail_change ? change_email_success : resend_email_success, false;
} Quit if this code is not right.
if empty_REQUEST[code] || row[validation_code] = _REQUEST[code]
{ if emptyrow[is_activated]
fatal_lang_erroralready_activated, false; elseif row[validation_code] ==
{ loadLanguageProfile;
fatal_errortxt[registration_not_approved] . a href= . scripturl . ?action=activate;user= . row[member_name] . .
txt[here] . a., false; }
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
context[sub_template] = retry_activate; context[page_title] = txt[invalid_activation_code];
context[member_id] = row[id_member]; return;
} Let the integration know that theyve been activated
call_integration_hookintegrate_activate, arrayrow[member_name];
Validation complete - update the database updateMemberDatarow[id_member], arrayis_activated = 1,
validation_code = ; Also do a proper member stat re-evaluation.
updateStatsmember, false; if isset_POST[new_email]
{ require_oncesourcedir . Subs-Post.php;
adminNotifyactivation, row[id_member], row[member_name];
} context += array
page_title = txt[registration_successful], sub_template = login,
default_username = row[member_name], default_password = ,
never_expire = false, description = txt[activate_success]
; }
This function will display the contact information for the forum, as well a form to fill in.
function CoppaForm {
global context, modSettings, txt, smcFunc;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
loadLanguageLogin; loadTemplateRegister;
No User ID?? if isset_GET[member]
fatal_lang_errorno_access, false; Get the user details...
request = smcFunc[db_query], SELECT member_name
FROM {db_prefix}members WHERE id_member = {int:id_member}
AND is_activated = {int:is_coppa}, array
id_member = int _GET[member], is_coppa = 5,
; if smcFunc[db_num_rows]request == 0
fatal_lang_errorno_access, false; list username = smcFunc[db_fetch_row]request;
smcFunc[db_free_result]request; if isset_GET[form]
{ Some simple contact stuff for the forum.
context[forum_contacts] = emptymodSettings[coppaPost] ? modSettings[coppaPost] . br br
: . emptymodSettings[coppaFax] ? modSettings[coppaFax] . br : ;
context[forum_contacts] = emptycontext[forum_contacts] ? context[forum_name_html_safe] .
br . context[forum_contacts] : ;
Showing template? if isset_GET[dl]
{ Shortcut for producing underlines.
context[ul] = unbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nb sp;nbsp;nbsp;nbsp;nbsp;nbsp;u;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
context[template_layers] = array; context[sub_template] = coppa_form;
context[page_title] = txt[coppa_form_title]; context[coppa_body] =
str_replacearray{PARENT_NAME}, {CHILD_NAME}, {USER_NAME}, arraycontext[ul], context[ul], username,
txt[coppa_form_body];
} Downloading.
else {
The data. ul = ;
crlf = \r\n; data = context[forum_contacts] . crlf .
txt[coppa_form_address] . : . crlf . txt[coppa_form_date] . : . crlf . crlf . crlf . txt[coppa_form_body];
data = str_replacearray{PARENT_NAME}, {CHILD_NAME}, {USER_NAME}, br, br , arrayul, ul,
username, crlf, crlf, data;
Send the headers. headerConnection: close;
headerContent-Disposition: attachment; filename=approval.txt;
headerContent-Type: . context[browser][is_ie] || context[browser][is_opera] ? applicationoctetstream : applicationoctet-
stream; headerContent-Length: . countdata;
echo data; obExitfalse;
} }
else {
context += array page_title = txt[coppa_title],
sub_template = coppa, ;
context[coppa] = array
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
body = str_replace{MINIMUM_AGE}, modSettings[coppaAge], txt[coppa_after_registration],
many_options = emptymodSettings[coppaPost] emptymodSettings[coppaFax],
post = emptymodSettings[coppaPost] ? : modSettings[coppaPost],
fax = emptymodSettings[coppaFax] ? : modSettings[coppaFax],
phone = emptymodSettings[coppaPhone] ? : str_replace{PHONE_NUMBER}, modSettings[coppaPhone],
txt[coppa_send_by_phone], id = _GET[member],
; }
} Show the verification code or let it hear.
function VerificationCode {
global sourcedir, modSettings, context, scripturl; verification_id = isset_GET[vid] ? _GET[vid] : ;
code = verification_id isset_SESSION[verification_id . _vv] ? _SESSION[verification_id . _vv][code] :
isset_SESSION[visual_verification_code] ? _SESSION[visual_verification_code] : ;
Somehow no code was generated or the session was lost. if emptycode
{ headerContent-Type: imagegif;
die\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x0 0\x00\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00\x2C\x00\x00\x00\x00\
x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3B; }
Show a window that will play the verification code. elseif isset_REQUEST[sound]
{ loadLanguageLogin;
loadTemplateRegister;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
context[verification_sound_href] = scripturl . ?action=verificationcode;rand= . md5mt_rand . verification_id ? ;vid=
. verification_id : . ;format=.wav; context[sub_template] = verification_sound;
context[template_layers] = array; obExit;
} If we have GD, try the nice code.
elseif empty_REQUEST[format] {
require_oncesourcedir . Subs-Graphics.php; if in_arraygd, get_loaded_extensions
showCodeImagecode headerHTTP1.1 400 Bad Request;
Otherwise just show a pre-defined letter. elseif isset_REQUEST[letter]
{ _REQUEST[letter] = int _REQUEST[letter];
if _REQUEST[letter] 0 _REQUEST[letter] = strlencode
showLetterImagestrtolowercode{_REQUEST[letter] - 1} {
headerContent-Type: imagegif; die\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x0
0\x00\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00\x2C\x00\x00\x00\x00\ x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3B;
} }
You must be up to no good. else
{ headerContent-Type: imagegif;
die\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x0 0\x00\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00\x2C\x00\x00\x00\x00\
x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3B;
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
} }
elseif _REQUEST[format] === .wav {
require_oncesourcedir . Subs-Sound.php; if createWaveFilecode
headerHTTP1.1 400 Bad Request; }
We all die one day... die;
} See if a username already exists.
function RegisterCheckUsername {
global sourcedir, smcFunc, context, txt; This is XML
loadTemplateXml; context[sub_template] = check_username;
context[checked_username] = isset_GET[username] ? _GET[username] : ;
context[valid_username] = true; Clean it up like mother would.
context[checked_username] = preg_replace~[\t\n\r \x0B\0 . context[utf8] ? context[server][complex_preg_chars] ?
\x{A0}\x{AD}\x{2000}-\x{200F}\x{201F}\x{202F}\x{3000}\x{FEFF} : \xC2\xA0\xC2\xAD\xE2\x80\x80-
\xE2\x80\x8F\xE2\x80\x9F\xE2\x80\xAF\xE2\x80\x9F\xE3\x80\x80\xEF\xB B\xBF : \x00-\x08\x0B\x0C\x0E-\x19\xA0 . ]+~ . context[utf8] ? u :
, , context[checked_username];
if smcFunc[strlen]context[checked_username] 25 context[checked_username] =
smcFunc[htmltrim]smcFunc[substr]context[checked_username], 0, 25;
Only these characters are permitted.
Raksa Griya Ramadhan, 2016 PENERAPAN PEMBELAJARAN PROBLEM POSING BERBANTU MULTIMEDIA INTERAKTIF PADA MATA
PELAJARAN JARINGAN DASAR UNTUK MENINGKATKAN PEMAHAMAN SISWA SMK.
Universitas Pendidikan Indonesia |
repository.upi.edu |
perpustakaan.upi.edu
if preg_match~[\=\\\]~, preg_replace~?:\\d{1,7}|x[0-9a- fA-F]{1,6};~, , context[checked_username] = 0 ||
context[checked_username] == _ || context[checked_username] == | || strposcontext[checked_username], [code == false ||
strposcontext[checked_username], [code == false
context[valid_username] = false; if stristrcontext[checked_username], txt[guest_title] == false
context[valid_username] = false; if trimcontext[checked_username] ==
context[valid_username] = false; else
{ require_oncesourcedir . Subs-Members.php;
context[valid_username] = isReservedNamecontext[checked_username], 0, false, false ? 0 : 1;
} }
?
9. Login dan Log Out