$value) { if (!validate($value, $login_fields[$field]['validators'])) header('Location: ' . $error_location . 'invalid'); } $username = $_POST['login_username']; $password_hash = hash('sha256', $_POST['login_password']); // If username/password hash are incorrect, redirect to login with error state. if (!authorize($username, $password_hash)) header('Location: ' . $error_location . 'incorrect'); unset($_POST['login_username']); unset($_POST['login_password']); // auth() handles setting $_SESSION variables, user is now OK to proceed to home.php. header('Location: ' . $success_location); default: // code... break; } function validate($input, $validators) { include_once ('includes/input_validation.php'); foreach ($validators as $v) { switch ($v) { case 'no_spaces': if (!no_spaces($input)) return false; break; case 'no_digits': if (!no_digits($input)) return false; break; case 'no_backslash': if (!no_backslash($input)) return false; break; case 'no_special': if (!no_special($input)) return false; break; case 'only_digits': if (!only_digits($input)) return false; break; // TODO: Need to get x. case 'only_digits_x': if (!only_digits_x($input, 5)) return false; break; case 'only_letters': if (!only_letters($input)) return false; break; // TODO: Need to get x. case 'only_letters_x': if (!only_letters_x($input, 5)) return false; break; case 'valid_email': if (!valid_email($input)) return false; break; case 'valid_phone': if (!valid_phone($input)) return false; break; case 'pw_strength': if (!pw_strength($input)) return false; break; case 'check_sql': if (check_sql($input)) return false; break; } } return true; }