<html><head> <?php global $vars; function initVars () { global $vars; $vars = array( "name" => "", "address" => "", "kinname" => "", "kinaddress" => "", "phone" => "", "kinphone" => "", "email" => "", "kinemail" => "", "relation" => "", "veggie" => "no", "student" => "yes", "insurance" => "BCRA", "bcranum" => "", "leave_uk" => "", "length_of_stay" => "", "transport_ok" => "yes", "transport_out" => "need", "transport_back" => "need", "from_uk" => "", "returning_uk" => "", "tent" => "no", "top_tent_cap" => "", "btent" => "no", "base_tent_cap" => "", "tent_share" => "yes", "share_condition" => "", "medic_info" => "", "extra_info" => "", "aims" => "", "lifts_out" => "yes", "lifts_back" => "yes", "no_out" => "2", "no_back" => "2", "take_out" => "", "take_back" => "", "transport_info" => "", "medication" => "", "allergies" => "", "bivvy" => "" ); } function fillVars () { initVars (); global $vars; $vars[name] = stripslashes($_POST[name]); $vars[address] = stripslashes($_POST[address]); $vars[phone] = stripslashes($_POST[phone]); $vars[kinname] = stripslashes($_POST[kinname]); $vars[kinaddress] = stripslashes($_POST[kinaddress]); $vars[phone] = stripslashes($_POST[phone]); $vars[kinphone] = stripslashes($_POST[kinphone]); $vars[email] = stripslashes($_POST[email]); $vars[kinemail] = stripslashes($_POST[kinemail]); $vars[relation] = stripslashes($_POST[relation]); $vars[veggie] = stripslashes($_POST[veggie]); $vars[student] = stripslashes($_POST[student]); $vars[transport_ok] = stripslashes($_POST[transport_ok]); $vars[from_uk] = stripslashes($_POST[from_uk]); $vars[returning_uk] = stripslashes($_POST[returning_uk]); $vars[tent] = stripslashes($_POST[tent]); $vars[top_tent_cap] = stripslashes($_POST[top_tent_cap]); $vars[btent] = stripslashes($_POST[btent]); $vars[base_tent_cap] = stripslashes($_POST[base_tent_cap]); $vars[medic_info] = stripslashes($_POST[medic_info]); $vars[extra_info] = stripslashes($_POST[extra_info]); $vars[aims] = stripslashes($_POST[aims]); $vars[transport_info] = stripslashes($_POST[transport_info]); $vars[medication] = stripslashes($_POST[medication]); $vars[allergies] = stripslashes($_POST[allergies]); $vars[bivvy] = stripslashes($_POST[bivvy]); } function errorPage ($err) { echo <<<END <title>Error</title> </head> END; echo <<<END <h1>Sorry</h1> <p><b>$err</b> END; } function securityChecks () { global $vars; $error = ""; if ($vars[name] == "") $error = "You must specify your full name."; elseif ($vars[address] == "") $error = "You must specify your address."; elseif ($vars[kinname] == "") $error = "You must specify the name of your next-of-kin."; elseif ($vars[kinaddress] == "") $error = "You must specify your next-of-kin's address."; elseif ($vars[kinphone] == "") $error = "You must specify your next-of-kin's phone number."; elseif ($vars[email] != "" && !ereg( '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $vars[email])) $error = "Invalid email address (leave blank if you don't have one)."; elseif ($vars[kinemail] != "" && !ereg( '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $vars[kinemail])) $error = "Invalid next-of-kin email address (leave blank if they don't have one)."; elseif ($vars[veggie] != "yes" && $vars[veggie] != "no" && $vars[veggie] != "mostly") $error = "Invalid veggie specification."; elseif ($vars[student] != "yes" && $vars[student] != "no") $error = "Invalid student specification."; elseif ($vars[transport_ok] != "yes" && $vars[transport_ok] != "no") $error = "Invalid transport specification given."; elseif ($vars[bivvy] != "" && $vars[bivvy] != "yes") $error = "Invalid bivvy specification."; elseif ($vars[tent] != "" && $vars[tent] != "yes") $error = "Invalid Top Camp tent specification."; elseif ($vars[btent] != "" && $vars[btent] != "yes") $error = "Invalid Base Camp tent specification."; elseif ($vars[tent] == "yes" && ($vars[top_tent_cap] < 1 || $vars[top_tent_cap] > 9)) $error = "Invalid Top Camp tent capacity given."; elseif ($vars[btent] == "yes" && ($vars[base_tent_cap] < 1 || $vars[base_tent_cap] > 9)) $error = "Invalid Base Camp tent capacity given."; if ($error != "") { echo "<title>Expo 2004 Application Form Error -- Cambridge University Caving Club</title>"; echo "</head>"; echo "<FORM ACTION=\"http://cucc.survex.com/expo/signup/submit.php?action=commit\" METHOD=\"POST\">"; printHidden (); echo <<<END <H1>Expo 2004 Application Form Error</H1> <p><b>Sorry, but you have made a mistake on your form:</b><center> $error </center> <p>Please click the button below and try again. <center><INPUT TYPE="submit" name="submit" VALUE="Modify form."></center> </form> END; return false; } return true; } function showForm () { global $vars; echo <<<END <title>Expo 2004 Application Form -- Cambridge University Caving Club</title> </head> END; echo <<<END <H1>Expo 2004 Application Form</H1> <P>This is the application form for Expo 2004, which runs from 10th July until 14th August. <P>This form is not secure and by submitting this form you consent to its contents being used for Expo purposes and being included in the Bier Book on Expo.</P> <HR> <FORM ACTION="http://cucc.survex.com/expo/signup/submit.php?action=preview" METHOD="POST"> <H2>Section A: Personal information<h2> <h3>General</h3> <table border=0> <tr><td colspan=2><b>Your details:</b></td><td colspan=2> <b>Next of kin:</b></td></tr> <tr><td align=right><i>Full</i> name:</td><td><input name="name" value="$vars[name]" tabindex=1></td> <td align=right>Name:</td><td><input name="kinname" value="$vars[kinname]" tabindex=4></td></tr> <tr><td align=right>Address:</td><td> <textarea name="address" rows=7 cols=20 tabindex=1>$vars[address]</textarea></td> <td align=right>Address:</td><td> <textarea name="kinaddress" rows=7 cols=20 tabindex=5>$vars[kinaddress]</textarea></td> </tr> <tr> <td align=right>Phone:</td><td><input name="phone" tabindex=2 value="$vars[phone]"></td> <td align=right>Phone:</td><td><input name="kinphone" tabindex=6 value="$vars[kinphone]"></td> </tr> <tr> <td align=right>Email:</td><td><input name=email tabindex=3 value="$vars[email]"></td> <td align=right>Email:</td><td><input name=kinemail tabindex=7 value="$vars[kinemail]"></td> </tr> <tr> <td colspan=2></td> <td align=right>Relation to you:</td><td><input name=relation tabindex=8 value="$vars[relation]"></td> </tr> </table> <table width=100%> <tr><td><b>Are you a vegetarian?</b></td> <td><b>Are you a student/unwaged?</b></td></tr> <tr><td><INPUT TYPE="radio" NAME="veggie" VALUE="yes" tabindex=9 END; if ($vars[veggie] == "yes") echo " checked"; echo <<<END >Yes</td><td><INPUT TYPE="radio" NAME="student" VALUE="yes" tabindex=12 END; if ($vars[student] == "yes") echo " checked"; echo <<<END >Yes</td></tr> <tr><td><INPUT TYPE="radio" NAME="veggie" VALUE="mostly" tabindex=10 END; if ($vars[veggie] == "mostly") echo " checked"; echo <<<END >Mostly</td><td><INPUT TYPE="radio" NAME="student" VALUE="no" tabindex=13 END; if ($vars[student] <> "yes") echo " checked"; echo <<<END >No</td></tr><tr><td><INPUT TYPE="radio" NAME="veggie" VALUE="no" tabindex=11 END; if ($vars[veggie] <> "yes" && $vars[veggie] <> "mostly") echo " checked"; echo <<<END >No</td><td></td></tr></table> <h3>Transport</h2> <p>Please look now at the <a target="_blank" href="http://cucc.survex.com/expo/years/2004/travel.html">transport arrangements page</a> (will open in a new window). Then select one of the following. <p><input type="radio" name="transport_ok" value="yes" tabindex=38 END; if ($vars[transport_ok] == "yes") echo " checked"; echo <<<END >The transport page shows my arrangements correctly.</input> <br><input type="radio" name="transport_ok" value="no" tabindex=39 END; if ($vars[transport_ok] == "no") echo " checked"; echo <<<END >The transport page does not show my arrangements correctly.</input> <p>If your arrangements are shown incorrectly, then please state the corrected version in the box below. This will automatically be emailed to the transport co-ordinator. <br><TEXTAREA NAME="transport_info" ROWS=6 COLS=80 tabindex=40>$vars[transport_info]</TEXTAREA></p> <h3>Tents</h3> <p>There will be two high camps in 2004: <ul><li>the stone bridge bivvy site; <li>the old Top Camp site, to be used for exploration of Eislüfthöhle. </ul> <p>There is space for three people in a Club tent at Base Camp. There is space for five or six people in a Club tent at Top Camp. At the stone bridge, a bivvy bag is not essential but useful if you have one. <P>Will you be taking any of the following (please tick/complete as appropriate):<BR> <INPUT TYPE="checkbox" NAME="bivvy" VALUE="yes" tabindex=53 END; if ($vars[bivvy] == "yes") echo " checked"; echo <<<END > A bivvy bag suitable for the stone bridge.<br> <INPUT TYPE="checkbox" NAME="tent" VALUE="yes" tabindex=50 END; if ($vars[tent] == "yes") echo " checked"; echo <<<END > A <INPUT NAME="top_tent_cap" SIZE=1 MAXSIZE=1 value="$vars[top_tent_cap]" tabindex=51> person tent for the Top Camp site.<BR> <INPUT TYPE="checkbox" NAME="btent" VALUE="yes" tabindex=52 END; if ($vars[btent] == "yes") echo " checked"; echo <<<END > A <INPUT NAME="base_tent_cap" SIZE=1 MAXSIZE=1 value="$vars[base_tent_cap]" tabindex=53> person tent for Base Camp.<br> <p>Leave the boxes unchecked if you require Club tent space at a particular site. <h3>Medical</h3> <p>The medical information entered here will appear in the Bier Book. Extra medical information may be communicated to <a href="mailto:mjg54@cam.ac.uk">Martin Green</a>; this will be placed in sealed envelopes inside the large first aid kits for use in case of emergency. Please ensure that you communicate such information in good time. <P>Please list any allergies which you have: <TEXTAREA NAME="allergies" ROWS=2 COLS=80 tabindex=68>$vars[allergies]</TEXTAREA></P> <P>Please list any medication which you may be taking in Austria: <TEXTAREA NAME="medication" ROWS=2 COLS=80 tabindex=69>$vars[medication]</TEXTAREA></P> <P>Please list any other medical conditions you have that the expedition should be aware of:<BR> <TEXTAREA NAME="medic_info" ROWS=5 COLS=80 tabindex=70>$vars[medic_info]</TEXTAREA></P> <h3>Other</h3> <P>Any other information, including any skills e.g. first aid, languages, etc. that you have:<BR> <TEXTAREA NAME="extra_info" ROWS=15 COLS=80 tabindex=71>$vars[extra_info]</TEXTAREA></P> <h2>Section B - Caving/surface work projects</h2> <p>To assist organisation of gear, it would be helpful to know people's possible aims on Expo. Thus if you have a particular project in mind, please state it below: <br> <textarea name="aims" rows=15 cols=80 tabindex=77>$vars[aims]</textarea> </table> <hr> <h2>All done?</h2> <p>Click the <b>Preview</b> button below to review your submission. <p><INPUT TYPE="submit" VALUE="Preview form submission"> </FORM> <hr> <p>Please report any problems with this form to the <a href="mailto:Mark.Shinwell@cl.cam.ac.uk">webmaster</a>.</p> END; } function insertSlashes () { } function printHidden () { global $vars; while (list ($key, $value) = each($vars)) echo "<input type=hidden name=$key value=\"$value\">"; } function previewForm () { global $vars; echo <<<END <title>Expo 2004 Application Form Preview -- Cambridge University Caving Club</title> </head> END; echo <<<END <h1>Expo 2004 Application Form Preview</h1> <P><b>Please check the details below and then select one of the options at the bottom of the page.</b> <hr> <H2>Contact details</H2> <h3>Your details</h3> <p> <FORM ACTION="http://cucc.survex.com/expo/signup/submit.php?action=commit" METHOD="POST"> END; printHidden (); $address1 = rtrim(ereg_replace(",,", ",", ereg_replace("(\r\n|\n|\r)", ", ", $vars[address])), " \t\n\r\0\x0b.,"); $kinaddress1 = rtrim(ereg_replace(",,", ",", ereg_replace("(\r\n|\n|\r)", ", ", $vars[kinaddress])), " \t\n\r\0\x0b.,"); echo "<b>Full name: </b>$vars[name]. <br><b>Address: </b> $address1.<br>"; echo "<b>Phone: </b> $vars[phone].<br><b>Email: </b> "; if ($vars[email] == "") echo "none"; else echo $vars[email]; echo "<h3>Details for your $vars[relation]</h3><p>"; echo "<b>Full name: </b>$vars[kinname]. <br><b>Address: </b> $kinaddress1.<br>"; echo "<b>Phone: </b> $vars[kinphone].<br><b>Email: </b> "; if ($vars[kinemail] == "") echo "none"; else echo $vars[kinemail]; echo "<h2>Miscellany</h2> <p><ul><li>"; echo "You are"; switch ($vars[veggie]) { case "no": echo "n't"; break; case "mostly": echo " mostly"; break; default: break; } echo " a vegetarian.<li>You are"; if ($vars[student] == "no") echo "n't"; echo " a student/unwaged person."; if ($vars[bivvy] == "yes") echo "<li>You're taking a bivvy bag suitable for the stone bridge."; if ($vars[tent] == "yes") echo "<li>You're taking a $vars[top_tent_cap] person tent suitable for Top Camp."; if ($vars[btent] == "yes") echo "<li>You're taking a $vars[base_tent_cap] person tent suitable for Base Camp."; echo "</ul><h2>Medical conditions</h2><ul>"; echo "<li>Allergies: "; if ($vars[allergies] == "") echo "None."; else echo nl2br($vars[allergies]); echo "<li>Medication to be taken in Austria: "; if ($vars[medication] == "") echo "None."; else echo nl2br($vars[medication]); echo "<li>Other medical conditions: "; if ($vars[medic_info] == "") echo "None."; else echo nl2br($vars[medic_info]); echo "</ul>"; if ($vars[aims] != "") { echo "<h2>Your aims for Expo</h3><p>"; echo nl2br($vars[aims]); } if ($vars[extra_info] != "") { echo "<h2>Other information</h2><p>"; echo nl2br($vars[extra_info]); } echo "<h2>Transport</h2><ul>"; if ($vars[transport_ok] == "yes") echo "<li>The transport page shows your arrangements correctly."; else { echo "<li>The transport page does not show your arrangements correctly.<br>"; echo "The corrected version is: "; echo nl2br($vars[transport_info]); } echo "</ul>"; if ($vars[transport_info] != "") { echo "<h3>Other transport information</h3><p>"; echo nl2br($vars[transport_info]); } echo <<<END <hr> <h2>If the above details are correct...</h2> <p><b>Only click once to avoid submitting duplicate forms.</b> <center><INPUT TYPE="submit" name="submit" VALUE="I confirm that all details are correct."></center> <h2>If you want to change something...</h2> <p>If there is an error in the above details, press the button below to change them. <center><INPUT TYPE="submit" name="submit" VALUE="Modify form."></center> </form> END; } function updateDatabase () { global $vars; $temp = ""; $address1 = rtrim(ereg_replace(",,", ",", ereg_replace("(\r\n|\n|\r)", ", ", $vars[address])), " \t\n\r\0\x0b.,"); $kinaddress1 = rtrim(ereg_replace(",,", ",", ereg_replace("(\r\n|\n|\r)", ", ", $vars[kinaddress])), " \t\n\r\0\x0b.,"); $temp = $temp . "Form submission from:\n"; $temp = $temp . " $vars[name]\n"; $temp = $temp . " $address1\n"; $temp = $temp . " Phone: $vars[phone]\n"; $temp = $temp . " Email: "; if ($vars[email] == "") $temp = $temp . "none"; else $temp = $temp . "$vars[email]"; $temp = $temp . "\n\n"; $temp = $temp . "Next of kin:\n"; $temp = $temp . " $vars[kinname]\n"; $temp = $temp . " $kinaddress1\n"; $temp = $temp . " Phone: $vars[kinphone]\n"; $temp = $temp . " Email: "; if ($vars[kinemail] == "") $temp = $temp . "none"; else $temp = $temp . "$vars[kinemail]"; $temp = $temp . "\n\n"; $temp = $temp . "Vegetarian? $vars[veggie]\n"; $temp = $temp . "Student/unwaged? $vars[student]\n\n"; if ($vars[transport_ok] == "yes") { $temp = $temp . "Transport arrangements page is correct for this person.\n"; } else { $temp = $temp . "Transport arrangements need changing to:\n"; $temp = $temp . "$vars[transport_info]\n"; $temp = $temp . "(Mark has been emailed and will update the page.)\n"; } $temp = $temp . "\nTaking a bivvy bag? $vars[bivvy]\n"; $temp = $temp . "\nTaking a Top Camp tent? $vars[tent]"; if ($vars[tent] == "yes") $temp = $temp . " (capacity $vars[top_tent_cap])\n"; else $temp = $temp . "\n"; $temp = $temp . "\nTaking a Base Camp tent? $vars[btent]"; if ($vars[btent] == "yes") $temp = $temp . " (capacity $vars[base_tent_cap])\n"; else $temp = $temp . "\n"; $temp = $temp . "\nAllergies: $vars[allergies]\n"; $temp = $temp . "Medication to be taken in Austria: $vars[medication]\n"; $temp = $temp . "Other medical conditions: $vars[medic_info]\n\n"; $temp = $temp . "Aims for Expo: $vars[aims]\n\n"; $temp = $temp . "Other information: $vars[extra_info]\n"; mail ("David Loeffler <dl267@cam.ac.uk>\n", "Expo form from $vars[name]", $temp, "From: Expo forms <mark@three-tuns.net>\n"); if ($vars[transport_ok] == "no") { $temp = "Transport page needs updating for $vars[name]:\n\n"; $temp = $temp . $vars[transport_info] . "\n"; mail ("Mark Shinwell <mark@three-tuns.net>", "Transport update from $vars[name]", $temp, "From: Expo forms <mark@three-tuns.net>\n"); } } function submitForm () { global $vars; updateDatabase (); echo <<<END <title>Submission successful!</title> </head> END; echo <<<END <h1>Expo 2004 Application</h1> <p><b>Submission successful!</b> <p>Thank you for your application. Please address any questions to the Expo Leader, <a href="mailto:oghm2@cam.ac.uk">Olly Madge</a>. <p><a href="http://cucc.survex.com/expo/">Return to the main Expo page</a>. END; } virtual("main.css"); switch ($_GET[action]) { case "blank": initVars (); showForm (); break; case "edit": fillVars (); showForm (); break; case "preview": fillVars (); if (securityChecks ()) { previewForm (); } break; case "commit": switch ($_POST[submit]) { case "I confirm that all details are correct.": fillVars (); if (securityChecks ()) { insertSlashes (); submitForm (); } break; case "Modify form."; fillVars (); showForm (); break; default: errorPage ("Invalid script action."); } break; default: errorPage ("Invalid script action."); break; } ?> </td></tr></table></body></html>