Schedule

Every Tuesday from September through June 7 - 9:30pm at the Linconia Senior Center, Alexandria, VA
One Saturday per month 9am - 1pm Place to be announced
#!/usr/bin/perl ########################################################################### # # Page Updater Pro V1.0 # # Copyright 1998, Jim Melanson # Jim Melanson Web Design # webmaster@thebeaches.to # www.thebeaches.to/jmwd/index.html # # No warranties of suitability for any application, commercial # or non-commercial. If you alter, load or use this program # you indemnify Jim Melanson, Jim Melanson Web Design and it's # associates of all claims arising from the use, misuse or # malfunction of this program. # ######################################################################## require 'updater_config.cgi'; &Parse; &Date; $ScriptURL = "http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}"; if($ENV{'QUERY_STRING'} =~ /^login/) { &Login; } elsif($ENV{'QUERY_STRING'} =~ /^user/) { &User; } elsif($ENV{'QUERY_STRING'} =~ /^search/) { &Search; } elsif($ENV{'QUERY_STRING'} =~ /^admin/) { if(($FORM{'clientuser'} eq '101') && ($FORM{'action'} ne 'add')) { $Problem = "you chose the default setting instead of a real client. Go back and choose a client."; &Error($Problem); } else { &Admin; } } elsif($ENV{'DOCUMENT_URI'}) { &PrintBody; } else { &Login; } sub Login { if($FORM{'action'}) { if(&CheckUserPass($FORM{'user'}, $FORM{'pass'})) { &User($FORM{'user'}, $FORM{'pass'}); } else { $Problem = "either the User Name or Password you entered was incorrect. Please try again."; &Error($Problem); } } else { &PrintHead('User Login Page'); print "
Welcome to $SiteName
User Login page.
\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "
$FONT1 UserID:
$FONT1 Password:
\n"; print "

\n"; print "

\n"; print "Lost Your Password or UserID?
Enter your E-Mail and we'll send them to you!
\n"; print "E-Mail:\n"; print "

\n"; &PrintFoot; } } sub Search { $found_pass = 0; open(FIND, "<$Data/admin/find_pass.list"); @GetList = ; close(FIND); foreach $entry (@GetList) { chop($entry); if($entry =~ /^$FORM{'searchfor'}\t/) { $found_pass = 1; ($find_email, $find_user, $find_pass) = split(/\t/, $entry); open (MAIL, "|$MailProgram -t"); print MAIL "To: $find_email\n"; print MAIL "From: $AdminEmail\n"; print MAIL "Subject: Password Retrieval\n\n"; print MAIL "Lost Password Retrieval\n\n"; print MAIL "Your UserName: $find_user\n"; print MAIL "Your Password: $find_pass\n\n"; print MAIL "Copyright $ThisYear, $SiteName\n\n"; close(MAIL); last; } } if($found_pass) { &PrintHead('Password Found'); print "

Your Password was found and has been
\n"; print "e-mailed to your account on record.





\n"; &PrintFoot; } else { $Problem = "the e-mail you entered was
not found in our records.

" . "Please contact us for further assistance."; &Error($Problem); } } sub PrintBody { @Doc_Parts = split(/\//, $ENV{'DOCUMENT_URI'}); $name = $Doc_Parts[$#Parts]; ($file_name, $waste) = split(/\./, $name); $ref_name = $file_name . "_update_file.file"; $data_string = "$Data/users/$ref_name"; open(BODY, "<$data_string"); @Body_Lines = ; close(BODY); $num_bodylines = @Body_Lines; print "Content-type: text/html\n\n"; for($a = 0; $a < $num_bodylines; $a++) { #if($Body_Lines[$a] =~ /!LBCR!/) { # $Body_Lines[$a] =~ s/!LBCR!/
/g; #} $Body_Lines[$a] =~ s/!LBCR!/ /g; print "$Body_Lines[$a]"; } } sub User { if($FORM{'action'} eq 'update_user') { if(&CheckUserPass($FORM{'user'}, $FORM{'pass'})) { if($FORM{'update_text'}) { #if($FORM{'update_text'} =~ /\n/) { # $FORM{'update_text'} =~ s/\n/!LBCR!/g; #} &GetUserProfile($FORM{'user'}); $print_to_file = $PROFILE{'document_name'} . "_update_file.file"; open(BODY, ">$Data/users/$print_to_file"); flock(BODY, '1'); print BODY "$FORM{'update_text'}"; close(BODY); &PrintHead('Successful Update'); print "

Your page was successfully updated.

\n"; print "Thank you for using $SiteName User Update Program.

\n"; print "View Changes ?\n"; print "





\n"; &PrintFoot; } else { $Problem = "the update you submitted contained no data. You must enter content for an update to occur."; &Error($Problem); } } else { $Problem = "either the User Name or Password you entered was invalid."; &Error($Problem); } } else { $this_user_id = $_[0]; $this_user_pass = $_[1]; &GetUserProfile($this_user_id); $read_from_file = $PROFILE{'document_name'} . "_update_file.file"; open(BODY, "<$Data/users/$read_from_file"); flock(BODY, '1'); @body_lines = ; close(BODY); $num_body_lines = @body_lines; &PrintHead("$FORM{'user'} Update Page"); print <Instructions to the user: In the form below, enter the new content for your page.
You can use plain text or the HTML tags listed at the bottom of the page. Any other tags will be removed. To achieve line breaks, simply use the carriage return key on your keyboard. All carriage return key strokes will be recognized as a line break.

WARNING

Once you have submitted any changes via this form, the changes will be live! Make sure of your content before you submit the changes!

I recommend that you first view the page you are changing and save a copy of it. That way you will be able to cut and paste the content to restore the original content should you need to.



Update Form

EndOfTop print "
\n"; print "\n"; print "\n"; print "\n"; print "






HTML Tags you can use

$FONT1 In all instances, the text you wish to affect must be enclosed within opening and closing tags. Example:
Opening Bold tag: <B>
Closing Bold tag: </B>
<B>Text to be bolded</B>
$FONT1 For your comparison, text without any tags will appear on the page looking like this.
$FONT1 <B>Bold text</B>$FONT1Bold text
$FONT1 <I>Italic text</I>$FONT1Italic text
$FONT1 <U>Underlined text</U>$FONT1Underlined Text
EndOfBottom &PrintFoot; } } sub Admin { if(&CheckAdminPass($FORM{'user'}, $FORM{'pass'})) { if($FORM{'action'} eq 'add') { if($FORM{'add_action'} eq 'confirm') { if($FORM{'add_new_pass'} eq $FORM{'add_new_pass_compare'}) { if($FORM{'add_new_user'}) { if($FORM{'add_url'}) { if(&CheckEmail($FORM{'add_email'})) { if(open(USERS, "<$Data/admin/user.list")) { flock(USERS, '1'); @users_list = ; close(USERS); $user_name_warning = 0; foreach $reg_user (@users_list) { chop($reg_user); if($reg_user =~ /^$FORM{'add_new_user'}/) { $user_name_warning = 1; last; } } } if($user_name_warning) { $Problem = "the UserName you chose is already in use. Please choose another UserName."; &Error($Problem); } else { $NewURL = &CheckURL($FORM{'add_url'}); $NewURL =~ s/\\/\//g; @doc_name_list = split(/\//, $NewURL); ($DocName, $w) = split(/\./, $doc_name_list[$#doc_name_list]); $Pass = crypt($FORM{'add_new_pass'}, $salt); $NewLine = join('||', $FORM{'add_new_user'}, $Pass, $FORM{'add_new_pass'}, $FORM{'add_org_name'}, $FORM{'add_sub_org_name'}, $FORM{'add_contact'}, $FORM{'add_email'}, $FORM{'add_phone'}, $DocName, $NewURL); open(USERS, ">>$Data/admin/user.list"); flock(USERS, '1'); print USERS "$NewLine\n"; close(USERS); open(FIND, ">>$Data/admin/find_pass.list"); flock(FIND, '1'); print FIND "$FORM{'add_email'}\t$FORM{'add_new_user'}\t$FORM{'add_new_pass'}\n"; close(FIND); $print_to_file = $DocName . "_update_file.file"; open(BODY, ">$Data/users/$print_to_file"); flock(BODY, '1'); print BODY "Your Page is Ready to be Updated !\n"; close(BODY); &PrintHead("Successful Addition"); print "

The necessary files and log entries have been completed for the addition of the following new user:

\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$FONT1 Organization Name:$FONT1 $FORM{'add_org_name'}
$FONT1 Group Name:$FONT1 $FORM{'add_sub_org_name'}
$FONT1 Group Contact:$FONT1 $FORM{'add_contact'}
$FONT1 Contacts E-Mail$FONT1 $FORM{'add_email'}
$FONT1 COntacts Phone#$FONT1 $FORM{'add_phone'}
$FONT1 Groups Update Page: 
$FONT1$NewURL

\n"; &PrintFoot; } } else { $Problem = "the email address you entered, $FORM{'add_email'}, is not in a valid e-mail address format. Please go back and correct the e-mail address."; &Error($Problem); } } else { $Problem = "you forgot to enter the URL for the page displaying this users content. You must enter a URL for their page."; &Error($Problem); } } else { $Problem = "you forgot to enter a New UserName for this group. Please go back and enter a user name for this group."; &Error($Problem); } } else { $Problem = "either you forgot to enter a New Password or the two Passwords you entered were not identical. Please use the back button on your browser and correct the entries."; &Error($Problem); } } else { &PrintHead('New User Additon'); print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$FONT1Add User
$FONT1 Organization Name:
$FONT1 Group Name:
$FONT1 Group Contact:
$FONT1 Their E-mail:
$FONT1 Their Phone #:
$FONT1 Their Web Page:
Where this update will be displayed
$FONT1New User Name:
$FONT1New User Password:
$FONT1Re-Enter Password:

\n"; print "

\n"; &PrintFoot; } } elsif($FORM{'action'} eq 'viewprofile') { if($FORM{'profile_action'} eq 'update') { $email_check = 0; if($FORM{'update_email'}) { $email_check = &CheckEmail($FORM{'update_email'}); } else { $email_check = 1; } if($email_check) { &GetUserProfile($FORM{'clientuser'}); if(!$FORM{'update_pass'}) { $CryptPass = $PROFILE{'pass'}; $ClearPass = $PROFILE{'find_pass'}; } else { $CryptPass = crypt($FORM{'update_pass'}, $salt); $ClearPass = $FORM{'update_pass'}; } if(!$FORM{'update_org_name'}) {$FORM{'update_org_name'} = $PROFILE{'org_name'}} if(!$FORM{'update_sub_org_name'}) {$FORM{'update_sub_org_name'} = $PROFILE{'sub_org_name'}} if(!$FORM{'update_contact'}) {$FORM{'update_contact'} = $PROFILE{'contact'}} if(!$FORM{'update_email'}) { $Email = $PROFILE{'email'}; } else { $Email = $FORM{'update_email'}; } if(!$FORM{'update_phone'}) {$FORM{'update_phone'} = $PROFILE{'phone'}} if(!$FORM{'update_url'}) { $URL = $PROFILE{'url'}; $DocName = $PROFILE{'document_name'}; } else { $URL = &CheckURL($FORM{'update_url'}); $URL =~ s/\\/\//g; @doc_name_list = split(/\//, $NewURL); ($DocName, $w) = split(/\./, $doc_name_list[$#doc_name_list]); if($DocName ne $PROFILE{'document_name'}) { rename("$Data/users/$PROFILE{'document_name'}_update_file.file", "$Data/users/$DocName_update_file.file"); } } $UpdateLine = join('||', $FORM{'clientuser'}, $CryptPass, $ClearPass, $FORM{'update_org_name'}, $FORM{'update_sub_org_name'}, $FORM{'update_contact'}, $Email, $FORM{'update_phone'}, $DocName, $URL); open(USERS, ">$Data/admin/user.list"); flock(USERS, '1'); for($a = 0; $a < $num_users; $a++) { if($users_list[$a] =~ /\n$/) { chop($users_list[$a]); } if($users_list[$a] =~ /^$FORM{'clientuser'}/) { print USERS "$UpdateLine\n"; } else { print USERS "$users_list[$a]\n"; } } close(USERS); if(($Email ne $PROFILE{'email'}) || ($ClearPass ne $PROFILE{'find_pass'})) { open(FIND, "<$Data/admin/find_pass.list"); flock(FIND, '1'); @find_list = ; close(FIND); $num_find = @find_list; open(FIND, ">$Data/admin/find_pass.list"); flock(FIND, '1'); for($a = 0; $a < $num_find; $a++) { if($users_list[$a] =~ /\n$/) { chop($users_list[$a]); } if($users_list[$a] =~ /^$FORM{'clientuser'}/) { print FIND "$Email\t$FORM{'clientuser'}\t$ClearPass\n"; } else { print FIND "$find_list[$a]\n"; } } close(USERS); } &PrintHead('Update Confirmation'); print "

The necessary files and log entries have been updated for the following user:

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$FONT1 Organization Name:$FONT1 $FORM{'update_org_name'}
$FONT1 Group Name:$FONT1 $FORM{'update_sub_org_name'}
$FONT1 Group Contact:$FONT1 $FORM{'update_contact'}
$FONT1 Contacts E-Mail$FONT1 $Email
$FONT1 Contacts Phone#$FONT1 $FORM{'update_phone'}
$FONT1 Groups Update Page: 
$FONT1$URL

\n"; &PrintFoot; } else { $Problem = "the e-mail address you entered, $FORM{'update_email'}, does not appear to be in a valid e-mail address format."; &Error($Problem); } } else { &GetUserProfile($FORM{'clientuser'}); &PrintHead('User Profile/Profile Update'); print "You may make any changes to this users profile in the fields below. If a field is left blank then that fields original value will remain unchanged.

\n"; print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$FONT1 Organization Name:$FONT1 $PROFILE{'org_name'}
$FONT1 Group Name:$FONT1 $PROFILE{'sub_org_name'}
$FONT1 Group Contact:$FONT1 $PROFILE{'contact'}
$FONT1 Their E-mail:$FONT1 $PROFILE{'email'}
$FONT1 Their Phone #:$FONT1 $PROFILE{'phone'}
$FONT1 Users HTML Page Name #:$FONT1 $PROFILE{'document_name'}
$FONT1 Their Web Page:
Where this update will be displayed
$FONT1 $PROFILE{'url'}
$FONT1User Name:$FONT1 $FORM{'clientuser'}
$FONT1Change Password:$FONT1 Hidden
$FONT1Re-Enter Password:$FONT1 Hidden

\n"; print "

\n"; print "\n"; print "\n"; print "

\n"; &PrintFoot; } } elsif($FORM{'action'} eq 'remove') { if($FORM{'remove_action'} eq 'confirm') { open(USERS, "<$Data/admin/user.list"); flock(USERS, '1'); @users_list = ; close(USERS); $num_users = @users_list; open(USERS, ">$Data/admin/user.list"); for($a = 0; $a < $num_users; $a++) { chop($users_list[$a]); if($users_list[$a] =~ /^$FORM{'clientuser'}/) { @use_split_line = split(/\|\|/, $users_list[$a]); } else { print USERS "$users_list[$a]\n"; } } unlink("$Data/users/$use_split_line[8]_update_file.file"); open(FIND, "<$Data/admin/find_pass.list"); flock(FIND, '1'); @find_list = ; close(FIND); $num_find = @find_list; open(FIND, ">$Data/admin/find_pass.list"); for($a = 0; $a < $num_find; $a++) { chop($find_list[$a]); unless($find_list[$a] =~ /^$use_split_line[6]/) { print FIND "$find_list[$a]\n"; } } close(FIND); &PrintHead("Successful Deletion"); print "

All files for $use_split_line[4] ($use_split_line[3]), have been deleted.





\n"; &PrintFoot; } else { &GetUserProfile($FORM{'clientuser'}); &PrintHead('Deletion Confirmation'); print "

$FONT1\n"; print "S T O P !
Are you absolutely sure that you want to delete the User Settings for:
\n"; print "$PROFILE{'org_name'} ($PROFILE{'sub_org_name'})

\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "

\n"; &PrintFoot; } } else { &PrintHead('Administrative Options Page'); print "

\n"; print "

\n"; print "\n"; #Current Users print "\n"; print "\n"; print "
$SiteName
Administrative Options
\n"; print "
$FONT1\n"; print "View User Summary
\n"; print "Delete User
\n"; print "Add New User
\n"; print "
\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "© 1999, Jim Melanson
\n"; print "Jim Melanson Web Design\n"; print "




\n"; &PrintFoot; } } else { &PrintHead('Admin Login Page'); print "
Welcome to $SiteName
Admin Login page.
\n"; print "
\n"; print "
\n"; print "\n"; print "
$FONT1 UserID:
$FONT1 Password:
\n"; print "

\n"; &PrintFoot; } }

Music for Spring 2002


      TBD




Standing Repertoire


      And All That Jazz
      'Deed I Do
      Get Happy
      I'm Just a Lucky So and So
      I've got the World on a String
      Little Boy Lost
      Lullaby of Broadway
      Ragtime
      Rent (shortest version)
      Steam Heat
      Some Days You Gotta Dance
      Swing Dancin'





Copyright © 2001 The Alexandria Singers