$version = "6.10.051114"; $brand="EditWrx"; $path_to_library=~m`/(.+?)/library`;$base=$1; $ini=$path_to_library."/ini"; $htm=$path_to_library."/htm"; $host=$ENV{'HTTP_HOST'}; if(!$path_to_data){$path_to_data=$path_to_library."/data"} $path_to_config=$path_to_data."/config.txt"; $path_to_users=$path_to_data."/users.txt"; $path_to_sessions=$path_to_data."/sessions.txt"; $path_to_lang=$path_to_library."/lang"; $path_to_changelog=$path_to_data."/changelog.txt"; $action=$ENV{'QUERY_STRING'}; $action =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; @allowable_ascii_extensions = qw(); @allowable_binary_extensions = qw(); $mouse =qq~onmouseover=up(this.id) onmouseup=out(this.id) onmouseout=out(this.id)~; $whb =qq~width="16" height="16" border="0" align=absmiddle~; @STYLES=();@NOTFND=();&pmck; open(CONFG,"$path_to_config"); while(){eval()} if(!$no_imc){$image_magick_check= eval { require Image::Magick; } ? 1 : 0;} &check_cookie; if($UserLang){$thislang=$UserLang} open(LANG,"$path_to_lang/$thislang/common.txt"); while(){push(@LANG,$_)} &exec_lang;&css; $url_to_editor =~ s`^http://.+?/(.+)$`http://$host/$1`; $url_to_common=~ s`^http://.+?/(.+)$`http://$host/$1`; $path_to_domain =~ s!/$!!; $url_to_editor=lc($url_to_editor); #$url_to_editor =~ m!(.+?\..+?)/!;$url_to_domain=$1; $url_to_domain="http://".$host; $url_to_editor =~m!([^/:\\]*)$!;$editorName=$1; $url_to_library =~ s!/$!!; $url_to_lang=$url_to_library."/lang"; if($path_to_data =~ /$path_to_library/){$parent=1} @params=split(/=/,$action);$pr=0; for (@params){$p="param".$pr;$$p=$params[$pr];++$pr} if($param0 eq ''){&get_login} &$param0; sub test{for(@test){if($_ eq $_[0]){return true}}} sub add_email{require "$ini/add_email.txt";exit;} sub add_nu_user{require "$ini/add_nu_user.txt";exit;} sub add_user{require "$ini/add_user.txt";exit;} sub admin_get_input{require "$ini/admin_get_input.txt";} sub admin_delete_folder{require "$ini/admin_delete_folder.txt";exit} sub admin_get_user{&admin_get_input;require "$ini/admin_get_user.txt";1;} sub admin_remove_user{require "$ini/admin_remove_user.txt";exit;} sub admin_tab{ require "$ini/admin_tab.txt";} sub admin_write_colors{&admin_get_input;require "$ini/admin_write_colors.txt";exit;} sub admin_write_config{&admin_get_input;require "$ini/admin_write_config.txt";exit} sub admin_write_fonts{&admin_get_input;require "$ini/admin_write_fonts.txt";exit;} sub admin_write_rules{&admin_get_input;require "$ini/admin_write_rules.txt";exit;} sub admin_write_user{&admin_get_input;require "$ini/admin_write_user.txt";exit} sub allocation{require "$ini/allocation.txt";} sub autologin{require "$ini/autologin.txt";} sub auth_wizard{require "$ini/auth_wizard.txt";} sub bailout{require "$ini/bailout.txt";exit;} sub basic_auth{require "$ini/basic_auth.txt";exit} sub basic_auth_create{require "$ini/basic_auth_create.txt";exit} sub basic_auth_manage{require "$ini/basic_auth_manage.txt";exit} sub basic_find_email{require "$ini/basic_find_email.txt";exit} sub basic_is_protected{require "$ini/basic_is_protected.txt";exit} sub basic_send_email{require "$ini/basic_send_email.txt";exit} sub basic_add_user_js{require "$ini/basic_add_user_js.txt";exit} sub basic_add_user{require "$ini/basic_add_user.txt";exit} sub begin{require "$ini/begin.txt";exit} sub binary_alert{require "$ini/binary_alert.txt";exit} sub blank{require "$ini/blank.txt";exit;} sub catalog{require "$ini/catalog.txt";} sub change_password{require "$ini/change_password.txt";} sub check_imc{require "$ini/check_imc.txt";} sub chngpw{require "$ini/chngpw.txt";} sub check_krypt{require "$ini/check_krypt.txt";} sub check_path{require "$ini/check_path.txt";} sub check_this_path{require "$ini/check_this_path.txt";exit;} sub create_thumbnail{&use_imagemagick;require "$ini/thumb.txt";exit} sub check_updates{require "$ini/check_updates.txt";} sub check_username{require "$ini/check_username.txt"} sub property_wiz{require "$ini/properties.txt";} sub chmod{ require "$ini/chmod.txt";exit;} sub chng_pw{ require "$ini/chng_pw.txt";exit;} sub colorpad{require "$ini/colorpad.txt";exit;} sub control{require "$ini/control.txt";exit;} sub create_button{require "$ini/create_button.txt";exit;} sub create_folder{require "$ini/create_folder.txt";exit;} sub create_link{require "$ini/create_link.txt";exit;} sub delete_file{require "$ini/delete_file.txt";exit;} sub delete_folder{require "$ini/delete_folder.txt";exit;} sub do_help{require "$ini/do_help.txt";exit;} sub edit_block{ require "$ini/edit_block.txt";exit} sub edit_blocks_write{require "$ini/edit_blocks_write.txt";} sub edit_file{require "$ini/edit_file.txt";} sub edit_file_write{require "$ini/edit_file_write.txt";} sub edit_source{ require "$ini/edit_source.txt";exit} sub edit_source_write{ require "$ini/edit_source_write.txt";exit;} sub find_file{require "$ini/find_file.txt";exit;} sub find_folder{require "$ini/find_folder.txt";exit;} sub find_wizard{require "$ini/find_wizard.txt";exit} sub formreturn{require "$ini/formreturm.txt";exit;} sub functions_js{require "$ini/functions_js.txt";exit;} sub generate_password{require "$ini/generate_password.txt";} sub get_blocks{require "$ini/get_blocks.txt";exit;} sub get_changelog{require "$ini/get_changelog.txt";} sub get_csv{require "$ini/get_csv.txt";exit} sub get_fonts{require "$ini/get_fonts.txt";} sub get_forms{require "$ini/get_forms.txt";exit;} sub get_form_submissions{require "$ini/get_form_submissions.txt";exit;} sub get_function{require "$ini/get_function.txt";} sub get_ieSpell{require "$ini/get_ieSpell.txt";exit} sub get_key{require "$ini/gen_lic.txt";exit} sub get_login{require "$ini/get_login.txt";exit;} sub get_page{ &get_input;$REDIRECT=$HTTP.$page;print "Location: $REDIRECT\n\n";} sub get_rule{require "$ini/get_rule.txt";} sub get_script{require "$ini/get_script.txt";} sub get_seed{require "$ini/get_seed.txt";} sub get_style{require "$ini/get_style.txt";} sub get_version_list{require "$ini/get_version_list.txt";exit;} sub help{require "$ini/help.txt";exit;} sub help_content{require "$init/help_content.txt"; } sub help_email{require "$ini/help_email.txt";} sub help_get_topic{require "$init/help_get_topic.txt";} sub help_swf{ require "$ini/help_swf.txt"; } sub help_note{ require "$ini/help_note.txt"; } sub imagemechanic{require "$ini/imageproperties.txt";exit;} sub inline_link{ require "$ini/inline_link.txt";exit;} sub insert_code{require "$ini/insert_code.txt";exit;} sub insert_image{ require "$ini/insert_image.txt";exit;} sub insert_table{ require "$ini/insert_table.txt";exit;} sub is_user_valid{require "$ini/is_user_valid.txt";exit;} sub kill_input {require "$ini/kill_input.txt";exit;} sub krypt{require "$ini/krypt.txt";} sub linkmechanic{require "$ini/linkproperties.txt";exit;} sub logged_in{&check_cookie;&check_login;&get_toolbar;} sub modal{require "$ini/modal.txt";exit} sub no_email{require "$ini/no_email.txt";exit;} sub no_file{require "$ini/no_file.txt";exit} sub nomail{require "$ini/nomail.txt";exit;} sub nu_name{require "$ini/nu_name.txt"; exit;} sub open_page{require "$ini/open_page.txt";exit;} sub open_file{require "$ini/open_file.txt";exit;} sub page_wizard{require "$ini/page_wizard.txt";exit;} sub page_write{require "$ini/page_write.txt";exit} sub path_tree{ require "$ini/path_tree.txt";print "$it";} sub print_csv{ require "$ini/print_csv.txt";exit} sub prompt{require "$ini/prompt.txt";exit} sub purge_csv{require "$ini/purge_csv.txt";exit} sub record_submission{require "$ini/record_submission.txt";} sub rename_page{require "$ini/rename_page.txt";exit;} sub reset_start{require "$ini/reset_start.txt";} sub resize_img{&use_imagemagick;require "$ini/resize_img.txt";} sub saveas{require "$ini/saveas.txt";} sub savefileas{require "$ini/savefileas.txt";} sub seed{require "$ini/seed.txt";} sub sendemail{require "$ini/sendemail.txt";} sub set_menus{require "$ini/set_menus.txt";} sub supsub{require "$ini/supsub.txt";} sub characters{require "$ini/specialcharacters.txt";exit} sub start_update{require "$ini/start_update.txt";exit} sub signup_js{require "$ini/signup_js.txt";exit} sub submit_to_email{require "$ini/submit_to_email.txt";} sub tablemechanic{require "$ini/tableproperties.txt";exit;} sub text_wiz{require "$ini/text_wiz.txt";exit;} sub tidyhole{require "$ini/tidyhole.txt";exit} sub get_toolbar{ require "$ini/toolbar.txt";exit;} sub update_now{require "$ini/update_now.txt";exit;} sub upload_file{require "$ini/upload_file.txt";exit;} sub uploading_file{&use_imagemagick;require "$ini/uploading_file.txt";exit;} sub use_imagemagick{if($image_magick_check==1){require "$ini/use_imagemagick.txt"}} sub word_wizard{require "$ini/word_wizard.txt";exit;} sub words{require "$ini/words.txt";exit} sub write{ require "$ini/write.txt";print "Location: $URL\n\n";} sub write_to_db{require "$ini/write_to_db.txt";} sub wrong_password{require "$ini/wrong_password.txt";exit;} #################################################################################### GLOBAL FUNCTIONS sub exec_lang{ push(@LANG,@LaNg); foreach $L (@LANG){ $L=~s`\s+$``; $L=~s/\$(\w+)/${$1}/eg; ($nc,$vc)=split(/=/,$L,2); $$nc=$vc; } }#exec_lang sub WRONG_SESSION{ print "Content-type: text/html\n\n"; print qq~~; exit; }#WRONG_SESSION sub welcome{ &get_login; }#welcome sub check_cookie{ @jar = split(/\;/,$ENV{'HTTP_COOKIE'}); foreach $cookie (@jar){ ($name, $value) = split(/=/,$cookie); $name =~ s/^\s*//; if($name =~ /^\D/ && $name !~ /\W+/){$$name=$value} } if($EditorLogin ne ""){($username,$PW,$sess)=split(/\|/,$EditorLogin);$PW='ce'.$PW} $Current_Dir =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; }#check_cookie sub check_login{ open(USR,"$path_to_users"); while(){ chomp(); if(/^admin=/){($a,$p)=split(/=/)} if(/^$username=/){ ($un,$pw,$user_root,$buttons,$imagesize,$usermb,$user_files,$user_email,$super,$auths,$usrtype,$mode)=split(/=/); last; } } if($mode eq "full"){$editing_mode=0} if($mode eq "block"){$editing_mode=1} if($mode eq "restricted"){$editing_mode=2} open(SESS,"$path_to_sessions"); while(){ if(/^$username=/){ chomp(); ($u,$s)=split(/=/); } } if($s ne $sess){ $wrong=qq~$com_session_wrong1 - [$com_session_wrong2]~; error("$wrong");exit;} if($PW ne $pw){ if(!$modal){ if($Admin_Login){ ($A,$P,$S)=split(/\|/,$Admin_Login); if($P ne $p){error("$com_wrongpw");exit;} $user_root=$url_to_domain; $Current_Dir=$path_to_domain; }else{ error("$com_wrongpw");exit; } } } if($Admin_Login){$user_root=$url_to_domain} $user_root=~s!/$!!;$user_root.="/"; $user_root =~ s`^http://.+?/(.*)$`http://$host/$1`; $user_root=~s!/$!!; }#check_login sub get_input{ read(STDIN, $input, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/,$input); foreach $pair (@pairs){ $pair =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; ($name, $value) = split(/=/,$pair,2); $value =~ tr/+/ /; $value =~ s/~!/ ~!/g; $value =~s!&pLuS!+!g; $value =~s!&nOBrEaK! !g; $value =~s!<=textarea!<\*`\|]/){ &kill_input; } } if($name =~ /^editblock/){push(@EDITS,$name)} if($name =~ /^noteblock/){push(@WRX_NOTES,$name)} if($name =~ /^includeblock/){push(@INCLUDES,$name)} if($name =~ /^body_tag_/){push(@body_tags,$name)} $$name=$value; push(@names,$name); $VALUES{$name}=$value; } if($#WRX_NOTES>-1){ foreach $note (@WRX_NOTES){ $nt=$note;$nt=~s`noteblock_``; push(@wrx_notes,$$note); push(@wrx_notez,$nt); } $wrx_notes=join("\n",@wrx_notes); } }#get_input sub get_css{ print "Content-type: text/html\n\n"; print "$css"; exit; }#get_css sub css{ $css=qq~ BODY {background-color:ThreeDFace;} .WRX_BUTTON{font-family:tahoma;font-size:11px} SELECT{font-size:11px;font-family:tahoma;} LEGEND{color:#333333;font-family:tahoma,arial;font-size:10px} ~; }#css sub flock{ $loc = $_[0]; $loc =~ s/.{3}$/LOC/; while (-e $lok && (stat($lok))[9]+30>time){sleep(1)} open(LOCK_FILE, ">$lok" ); }#flock sub unflock{ $loc = $_[0]; $loc =~ s/.{3}$/LOK/; close(LOCK_FILE); unlink($lok); }#unflock sub fetch { my ($output,$n) = undef; my $fullurl = $_[0]; $fullurl =~ s/ /\%20/g; $fullurl =~ s!http://!!; $fullurl =~ m!(.+?)/(.+)!; require IO::Socket; my $host_name = $1; my $file_path = $2; local($^W) = 0; my $connect = IO::Socket::INET->new(PeerAddr=>$host_name, PeerPort=>80, Proto=>'tcp', Timeout=>60); if($connect){ $connect->autoflush; print $connect join("\n"=>"GET /$file_path HTTP/1.0","Host: $host_name","User-Agent: Fetch1.5\n","",""); 1 while $n = sysread($connect, $output, 8*1024, length($output)); $output =~ s/.+?\012?\015\012?\015//s; $output =~ s/^\s+//; } return $output; }#fetch sub error{ print "Content-type: text/html\n\n"; print "ERROR $_[0] "; exit; }#error sub alert{ print "Content-type: text/html\n\n"; print qq~ ~; exit; } sub error2{ print "Content-type: text/html\n\n"; print qq~ ~; exit; }#error2 sub environment{ print "Content-type: text/html\n\n"; print "$path_to_domain

"; for (sort keys %ENV) { print "
$_=$ENV{$_}\n"; } print "
OS=$^O "; print "
=============== "; $ww1= $ENV{'SCRIPT_FILENAME'} || $ENV{'PATH_TRANSLATED'}; open(WW,"$ww1"); while(){ print "
$_ "; } print "
=============== "; open(WWD,"$path_to_data/config.txt"); while(){ print "
$_ "; } print "
===============
"; print "imagemagick= $image_magick_check

"; print "VERSION = $version"; exit; }#environment sub pmck{ $pmckf=$path_to_library."/mods/pmck.pm"; if(-e $pmckf){ $pmck=qq~Image::Size Mail::Sendmail~; $pmck=~s|[\r]||g; @pmck=split(/[\n]/,$pmck); foreach $pm (@pmck){ $is=eval{require $pm} ? 1 : 0; if(!$is){ $pm=~s|\:\:|/|g; @pm=split(/\//,$pm); pop(@pm); @pfx=(); foreach $pf (@pm){ push(@pfx,$pf); $pfx=join("/",@pfx); $pmfld=$path_to_library."/mods/".$pfx; $unpmfld=$path_to_library."/mods_/".$pfx; if(!-e $pmfld){mkdir($pmfld,0755)} } $pmX=$path_to_library."/mods_/".$pm.".pm"; $pmx=$path_to_library."/mods/".$pm.".pm"; rename($pmX,$pmx); rmdir($unpmfld); } $@ = undef; } unlink($pmckf); unlink($path_to_library."/mods_/Image/Size.pm"); unlink($path_to_library."/mods_/Mail/Sendmail.pm"); rmdir($path_to_library."/mods_/Image"); rmdir($path_to_library."/mods_/Mail"); rmdir($path_to_library."/mods_"); }#if pmckf $samp=$path_to_domain."/".$editwrx_folder_name."/sample_pages/samp.txt"; if(-e $samp){ $beo=$path_to_domain."/".$editwrx_folder_name."/sample_pages/block_editing.html"; $fpe=$path_to_domain."/".$editwrx_folder_name."/sample_pages/full_page_editing.html"; open(BOE,"$beo"); while(){s/\$(\w+)/${$1}/eg;$SAVEBOE.=$_} open(BOE,">$beo"); print BOE "$SAVEBOE"; close(BOE); open(FPE,"$fpe"); while(){s/\$(\w+)/${$1}/eg;$SAVEFPE.=$_} open(FPE,">$fpe"); print FPE "$SAVEFPE"; close(FPE); unlink($samp); }#if samp }#pmck ############ END