- <?php
- if (isset($_POST['email'])) {
- $emaildata = $conn->real_escape_string($_POST['email']);
- $usernamedata = $conn->real_escape_string($_POST['username-signup']);
- $passwordData = $conn->real_escape_string($_POST['password-signup']);
- $passwordRepeatedData = $conn->real_escape_string($_POST['password-signup-repeat']);
- $firstname = $conn->real_escape_string($_POST['first-name']);
- $lastname = $conn->real_escape_string($_POST['last-name']);
- //email uniqueness test
- $checkIfEmailExists = "SELECT Email_Address FROM Login_Details WHERE Email_Address = '$emaildata'";
- $resultCheckEmail = $conn->query($checkIfEmailExists);
- if (!$resultCheckEmail) {
- $conn->error;
- }
- $numrowsemail = $resultCheckEmail->num_rows;
- if ($numrowsemail > 0) {
- echo "<p class= 'mytext'>Email already in use.</p>";
- }
- //username uniqueness test
- $checkIfUsernameExists = "SELECT Username FROM Login_Details WHERE Username = '$usernamedata'";
- $resultCheckUsername = $conn->query($checkIfUsernameExists);
- if (!$resultCheckEmail) {
- $conn->error;
- }
- $numrowsusername = $resultCheckUsername->num_rows;
- if ($numrowsusername > 0) {
- echo "<p class= 'mytext'>Username taken.</p>";
- }
- //password consistency check
- if ($passwordData != $passwordRepeatedData) {
- echo "<p class='mytext'>Passwords must be the same.</p>";
- }
- if ($numrowsusername == 0 && $numrowsemail == 0) {
- if ($passwordData == $passwordRepeatedData) {
- //insert login query
- $insertLogin = "INSERT INTO Login_Details(
- Username,
- Email_Address,
- Password
- )
- VALUES(
- '$usernamedata',
- '$emaildata',
- '$passwordData'
- );";
- $getloginid = "SELECT Login_ID FROM Login_Details WHERE Email_Address = '$emaildata' AND Password = '$passwordData'";
- //beginning transaction
- $conn->begin_transaction();
- //running the insert login query
- $resultinsertLogin = $conn->query($insertLogin);
- if (!$resultinsertLogin) {
- echo $conn->error;
- }
- //running the get login id query
- $loginidresult = $conn->query($getloginid);
- //assign to variable
- while ($row = $loginidresult->fetch_assoc()) {
- $loginid = $row['Login_ID'];
- }
- //query to insert this id into log in table
- $insertuser = "INSERT INTO Users(First_Name, Last_Name, Login_ID) VALUES ('$firstname', '$lastname', '$loginid');";
- //running query
- $resultInsertUser = $conn->query($insertuser);
- $userid = $conn->insert_id;
- $_SESSION['id'] = $userid;
- $_SESSION['firstname'] = $firstname;
- $_SESSION['lastname'] = $lastname;
- echo "<p>".$_SESSION['id']."</p>";
- echo "<p>".$_SESSION['firstname']."</p>";
- echo "<p>".$_SESSION['lastname']."</p>";
- //if both queries have executed succesfully we will commit (else rollback the whole transaction)
- if ($insertuser && $resultInsertUser) {
- $conn->commit();
- } else {
- $conn->rollback();
- echo "There was a problem, please wait and try again";
- }
- }
- header('location: profile.php');
- }
- }
- ?>