Phasing out global functions in db.php (1)
Phasing out global functions in db.php (2)
signup.php now has complete error handling.

error.php has a class to manage a "current error" object. This object
should be created in a catch block of an exception, when rudimentary
form validation fails, or other such server-side error conditions. Then
the current page should be returned to and Error::putError() will print
the error to the page.

formInput.php provides functions for rudimentary validation that forms
have been filled in, and a way to correctly get values from form fields
while dealing with whether isset() and empty() is called correctly
without producing warnings or crashing.

This begins my push to remove separate "process" pages in favor of using
same-page form targets, so that error states can be displayed on the
form without requiring a redirect.
index.php now has complete error checking.
Phasing out global functions in db.php (3)

student/search.php now has error handling for Search (NYI for Apply).
student/search.php now has error handling for Apply.

This required some modifcations to the AJAX call to actually check the
response it gets.
Fixed signup.php validation
student/profile.php now has error handling.
E/R diagram I'm using
Start support for email validation & emailing users.
Signup confirmation page in PHP, not JavaScript
Make Google Chrome not try to auto-fill the WRONG fields (emailConfirm/password instead of email/password) by making it not fill ANY fields.
Phasing out global functions in db.php (4)

Making password_hash() use consistant in my changes (always inside
register* function).
Phasing out global functions in db.php (5)

Moving to getApplicants() function, a "piece-wise" SQL caller to get
various combinations of Applications by Professor, Course, Term, and Status.
Phasing out global functions in db.php (6)
Applicant class renamed to Application
Catch exceptions in emailExists.php
Catch exceptions in professor/fetchStudent.php and always return JSON.
Reverted removal of process.php, async signup submit.
register* functions now properly return the userID of the inserted user.