} /** Stage 3: Validate Email Address and Check if Already Used **/ if (!filter_var($userEmail, FILTER_VALIDATE_EMAIL)) { // Clears the Array $masterArray = array(); // Array Components $message = "This is Not a Valid Email Address"; $redirect = "#"; // Add Components to Array array_push($masterArray, $message); array_push($masterArray, $redirect); // Return Encoded Array echo json_encode($masterArray); return; } if (!ValidInvite($donatedCode)) { // Clears the Array $masterArray = array(); // Array Components $message = "Not a Valid Invite Code!"; $redirect = "#"; // Add Components to Array array_push($masterArray, $message); array_push($masterArray, $redirect); // Return Encoded Array echo json_encode($masterArray); return; } /** Stage 4: Add User Information to Database **/ // Create MySQL Connection $connection = mysqli_connect($globalHostName, $globalUserName, $globalPassword, $globalDatabase);
$inviteHashValue = $queryResults['hashvalue']; /** Check if the Invite is Still Valid */ $inviteConnection = mysqli_connect($globalHostName, $globalUserName, $globalPassword, $globalDatabase); $validInviteQuery = "SELECT invitecode as inviteCode FROM donaters WHERE email = '{$donatersEmail}' AND invitehashed = '{$inviteHashValue}'"; // Connection Error Handling if ($inviteConnection->connect_error) { // Kill the Connection die("Could Not Establish Connection to Remote Database"); } // Query the Number of People in Line $Invitequery = mysqli_query($inviteConnection, $validInviteQuery); $data = mysqli_fetch_assoc($Invitequery); $inviteCode = $data['inviteCode']; mysqli_close($inviteConnection); // If the Invite Code is Still Valid, Reassign It. if (ValidInvite($inviteCode)) { /** Step 0: Establish Connection to the Database */ // Connection Details $mainFunctionConnection = mysqli_connect($globalHostName, $globalUserName, $globalPassword, $globalDatabase); // Connection Error Handling if ($mainFunctionConnection->connect_error) { // Kill Connection die("Could Not Establish Connection!"); } /** Step 1: Move the Active User to Another Table of People Who Have Failed to Claim Their Invites */ $moveFailClaimQuery = "INSERT INTO failedclaim (toemail, fromemail) VALUES ('{$activeListEmail}', '{$donatersEmail}');"; /** Step 2: Create a New Hash Value for the Donater's Invite and Trash the Old One */ // Generate a New Password Hash From the Hash and Mark Donater as Available $newHashedInviteCode = password_hash($inviteHashValue, PASSWORD_DEFAULT); $moveFailClaimQuery .= "UPDATE donaters SET invitehashed = '{$newHashedInviteCode}' WHERE email = '{$donatersEmail}' AND invitehashed = '{$inviteHashValue}';"; $moveFailClaimQuery .= "UPDATE donaters SET available = 1 WHERE email = '{$donatersEmail}';";
// Query the Validity of the GET Variables $donationQuery = mysqli_prepare($donateConnection, "SELECT invitecode, firstname, lastname, message FROM donaters WHERE email = ? AND invitehashed = ?"); $donationQuery->bind_param('ss', $masterFromEmail, $safeHash); mysqli_stmt_execute($donationQuery); mysqli_stmt_bind_result($donationQuery, $inviteCodeDecoded, $firstName, $lastName, $messageDecoded); mysqli_stmt_fetch($donationQuery); // Assign Database Results to Master Variables $masterInviteDecoded = $inviteCodeDecoded; $masterFirstName = $firstName; $masterLastName = $lastName; $masterMessage = $messageDecoded; // Close Connection $donateConnection->close(); /** Check if the Invite Code is Still Valid */ // If the Invite is Still Valid if (ValidInvite($masterInviteDecoded)) { /** Stage 3: Claim Invite: Mark Invites as Claimed */ // Connect to Database $modifyClaimConnection = mysqli_connect($globalHostName, $globalUserName, $globalPassword, $globalDatabase); // Connection Error Handling if ($modifyClaimConnection->connect_error) { // Kill Connection die("Failed to Connect. Please Try Again."); } // Query $claimQuery = "UPDATE activeoutput SET claimed = 1 WHERE sendingemail = '{$masterFromEmail}' AND receivingemail = '{$masterToEmail}' AND hashvalue = '{$masterHashValue}';"; $claimQuery .= "UPDATE activelist SET inqueue = 0 WHERE email = '{$masterToEmail}'"; // Execute Query mysqli_multi_query($modifyClaimConnection, $claimQuery); // Close Connection mysqli_close($modifyClaimConnection);