require_once 'dal.php'; require_once 'utils.php'; require_once 'email.php'; $error = null; $message = null; $user = null; $person = null; $dal = new DAL($opts['hn'], $opts['db'], $opts['un'], $opts['pw']); try { $dal->beginTransaction(); if (isset($_GET['verify'])) { if (!$dal->loginWithEmailSharedSecret($_GET['person_id'], $_GET['person_email_shared_secret'])) { throw new UserException('Login failed.'); } } $user = $dal->selectUser(); if ($user === null) { throw new UserException('Login required.'); } if (isset($_GET['person_id'])) { $person = $dal->selectPersonById($_GET['person_id']); if ($person === null) { throw new UserException('Profile not found.'); } } else { $person = $user; } if ($user['person_id'] !== $person['person_id'] && $user['person_is_moderator'] !== 'y') { throw new UserException('Moderator login required.'); } if (isset($_POST['save'])) {