function issuechallenge($keyid) { $requestip = $_SERVER["REMOTE_ADDR"]; if (($db = getAuthDb()) === NULL) { handleError("Database connection error", 500); } $db->autocommit(FALSE); $stmt = $db->prepare('SELECT user FROM pubkeys WHERE keyid=?'); $stmt->bind_param("i", $keyid); $stmt->bind_result($user); if ($stmt->execute()) { if (($result = $stmt->fetch()) === TRUE) { $stmt->close(); } elseif ($result === NULL) { handleError("Key not found", 403, "invalid parameter"); } else { handleError('Failure to get username'); } } $random = openssl_random_pseudo_bytes(8); $challenge = base64_encode(sha1($requestip . $user . $random, TRUE)); storeChallenge($db, $keyid, $requestip, $challenge); $db->close(); header("Content-type: text/plain"); print $challenge; // print ("<html><body>Key $keyid belongs to user $user<br/>Challenge:$challenge</body></html>"); }
/** * Store a newly created resource in storage. * * @return Response */ public function store($userId, $exId) { $user = loadUser($userId)[0]; if (loadChallengeByUsersExercise(\Auth::id(), $user->id, $exId) == []) { storeChallenge(\Auth::id(), $user->id, $exId); $challengeId = loadChallengeByUsersExercise(\Auth::id(), $user->id, $exId)[0]->id; setWinner($challengeId, \Auth::id()); $newScore = loadUser(\Auth::id())[0]->score + 1; setUserScore(\Auth::id(), $newScore); flash()->success("{$user->username} was challenged succefully"); storeNotification($user->id, "challenged", \Auth::id(), $challengeId); } else { flash()->error("This challenge already exists"); } $sId = \Session::get('currentSerie'); $nextEx = nextExerciseofSerie($exId, $sId); if ($nextEx == []) { return redirect('series/'); } return redirect('exercises/' . $nextEx[0]->id); }