name) ); list_item( "Email address
This won't be publicized, but user email may be sent here. Use a separate mailbox if you want.", input("email_addr", $vol->email_addr) ); list_item( "Password", password("password", $vol->password) ); list_item( "Skype ID
This will be publicized. Use a Skype account other than your primary one if you want.", input("skypeid", $vol->skypeid) ); list_item( "Primary language", spoken_language_list("lang1", $vol->lang1) ); list_item( "Secondary language", spoken_language_list("lang2", $vol->lang2) ); list_item( "Country", "" ); list_item( "Specialties
What kinds of computers (Windows/Mac/Linux) and/or networking technologies (proxies, NATs) are you most familiar with?", textarea("specialties", $vol->specialties) ); list_item( "Projects
Do you specialize in any particular BOINC-based projects?", textarea("projects", $vol->projects) ); list_item( "What days and times are you typically available for help?
Include your time zone, or use UTC", textarea("availability", $vol->availability) ); list_item( "Is Skype voice OK?", yesno("voice_ok", $vol->voice_ok) ); list_item( "Is Skype text OK?", yesno("text_ok", $vol->text_ok) ); list_item( "Hide your account?", yesno("hide", $vol->hide) ); list_item( "", "" ); list_end(); } function get_form_data() { $vol->name = stripslashes($_GET['volname']); if (!$vol->name) boinc_error_page("Name must not be blank"); if (strstr($vol->name, "<")) boinc_error_page("No < allowed"); $vol->password = stripslashes($_GET['password']); if (!$vol->password) boinc_error_page("Password must not be blank"); $vol->email_addr = stripslashes($_GET['email_addr']); if (!$vol->email_addr) boinc_error_page("Email address must not be blank"); $vol->skypeid = stripslashes($_GET['skypeid']); if (!$vol->skypeid) boinc_error_page("Skype ID must not be blank"); $vol->lang1 = stripslashes($_GET['lang1']); if (!$vol->lang1) boinc_error_page("Primary language must not be blank"); if (!is_spoken_language($vol->lang1)) boinc_error_page("Not a language"); $vol->lang2 = stripslashes($_GET['lang2']); if (!is_spoken_language($vol->lang2)) boinc_error_page("Not a language"); $vol->country = stripslashes($_GET['country']); if (!is_valid_country($vol->country)) boinc_error_page("Bad country"); $vol->specialties = stripslashes($_GET['specialties']); if (strstr($vol->specialties, "<")) boinc_error_page("No < allowed"); $vol->projects = stripslashes($_GET['projects']); if (strstr($vol->projects, "<")) boinc_error_page("No < allowed"); $vol->availability = stripslashes($_GET['availability']); if (strstr($vol->availability, "<")) boinc_error_page("No < allowed"); $vol->voice_ok = $_GET['voice_ok']?1:0; $vol->text_ok = $_GET['text_ok']?1:0; $vol->hide = $_GET['hide']?1:0; return $vol; } function email_password($vol) { page_head("Emailing password"); echo "We're emailing your Help Volunteer password to $vol->email_addr."; page_tail(); $body = "Your BOINC Help Volunteer password is:\n$vol->password\n"; mail($vol->email_addr, "Help Volunteer info", $body, "From: BOINC"); } $create = $_GET['create']; $edit_login = $_GET['edit_login']; $edit_form = $_GET['edit_form']; $edit_action = $_GET['edit_action']; if ($create == 'OK') { $vol = get_form_data(); $vol->create_time = time(); $vol->timezone = 99; $vol2 = vol_lookup_name($vol->name); if ($vol2) { boinc_error_page("That name is already taken"); } $vol2 = vol_lookup_email($vol->email_addr); if ($vol2) { boinc_error_page("There's already an account with email address $vol->email_addr"); } $retval = vol_insert($vol); if (!$retval) { echo mysql_error(); page_head("database error"); } else { page_head("Registration finished"); echo " Thanks - you're now registered as a BOINC Help Volunteer.

If later you want to change your account information, go to the Help page and click on the link at the bottom of the page. "; } page_tail(); } else if ($edit_login) { page_head("Edit your Help Volunteer account"); echo "Please enter the email address and password of your Help Volunteer account.

"; list_start(); list_item("Email address", input("email_addr", "")); list_item("Password
If you forgot your password, leave this blank, and we'll email it to you.", password("password", "") ); list_item("", "" ); list_end(); echo "
\n"; page_tail(); } else if ($edit_form == "OK") { $email_addr = stripslashes($_GET['email_addr']); $password = stripslashes($_GET['password']); $vol = vol_lookup_email($email_addr); if (!$vol) { boinc_error_page("Bad email address $email_addr"); } if (!$password) { email_password($vol); exit(); } if ($password != $vol->password) { boinc_error_page("Bad password"); } page_head("Edit your Help Volunteer Account"); echo "
"; print_form($vol, 'edit_action'); echo "
\n"; page_tail(); } else if ($edit_action) { $old_email_addr = stripslashes($_GET['old_email_addr']); $old_password = stripslashes($_GET['old_password']); $vol = vol_lookup_email($old_email_addr); if (!$vol) { boinc_error_page("Bad email address $old_email_addr"); } if ($old_password != $vol->password) { boinc_error_page("Bad password"); } $vol2 = get_form_data(); $vol2->timezone = $vol->timezone; $vol2->id = $vol->id; $retval = vol_update($vol2); if (!$retval) { echo mysql_error(); page_head("database error"); page_tail(); } else { page_head("Update completed"); echo "Your Help Volunteer account information has been updated."; page_tail(); } } else { page_head("Register as a BOINC Help Volunteer"); $vol = null; $vol->voice_ok = 1; $vol->text_ok = 1; echo "
\n"; print_form($vol, 'create'); echo "
\n"; page_tail(); } ?>