if (login_check()) { $me = $_SESSION['u']; if ($me == $memberID) { $memberID = 'me'; } } /* check here for POST, for create/delete member account */ // are we supplying data via POST? → write to log, create DB duplicate, Location: /member? if (isset($_POST['store'])) { $profile = getPlayerSummary($me); $profile['isgroupmember'] = $_SESSION['g']; logDB("User requested profile storage: {$me}"); storePlayerSummaryDB($profile); /* if this ever fails, ignore it :] */ /* XXX messy line to get memberurl populated */ $profile = inflatePlayerSummary(deflatePlayerSummary($profile)); if (true) { header("Location: " . str_replace('//steamlug.org', '', $profile['memberurl'])); exit; } } // are we supplying data via POST? → write to log, remove DB duplicate, Location: /member? if (isset($_POST['unstore'])) { logDB("User requested profile removal: {$me}"); $removed = removePlayerSummaryDB($me); if ($removed) { header("Location: /member/"); exit; } } $accountUpdate = "";
function storePlayerSummaryDB($profile) { global $database; try { $database->beginTransaction(); $profile = deflatePlayerSummary($profile); /* TODO: safe-ify _everything_ */ $statement = $database->prepare("INSERT INTO steamlug.members\n\t\t\t\t(steamid, personaname, profileurl, avatar, isgroupmember,\n\t\t\t\tsuggestedvisibility) VALUES (:steamid, :persona, :vanity, :avatar,\n\t\t\t\t:group, :privacy) ON DUPLICATE KEY UPDATE personaname=VALUES(personaname),\n\t\t\t\tprofileurl=VALUES(profileurl), avatar=VALUES(avatar),\n\t\t\t\tisgroupmember=VALUES(isgroupmember),\n\t\t\t\tsuggestedvisibility=VALUES(suggestedvisibility);"); $statement->execute(array('steamid' => $profile['steamid'], 'persona' => $profile['personaname'], 'vanity' => $profile['profileurl'], 'avatar' => $profile['avatar'], 'group' => $profile['isgroupmember'], 'privacy' => $profile['communityvisibilitystate'])); $user = $statement->fetch(PDO::FETCH_ASSOC); $database->commit(); return $user; } catch (Exception $e) { return false; } }