- Added a "My Account" page
- Somewhat basic but works. Probably a lot of bugs still - Re-worked databases to add Discord and YouTube links as separate entries
This commit is contained in:
parent
6329d96331
commit
b6c2f08731
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
echo "<p>Connected successfully</p>";
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
|
@ -4,7 +4,7 @@ session_start();
|
||||
include("../db_config.php"); // Include database stuff
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
@ -53,6 +53,7 @@ try { // Try opening the SQL database connection
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
|
@ -4,7 +4,7 @@ session_start();
|
||||
include("../db_config.php"); // Include database stuff
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
@ -40,7 +40,7 @@ try { // Try opening the SQL database connection
|
||||
$userList[] = $result["winner4"];
|
||||
}
|
||||
|
||||
|
||||
// Make sure we only have each name once
|
||||
$userList = array_unique($userList);
|
||||
// Sort the array to alphabetical order
|
||||
sort($userList);
|
||||
|
@ -2,8 +2,8 @@
|
||||
// DB LOGIN DETAILS HERE
|
||||
|
||||
$servername = "127.0.0.1";
|
||||
$username = "USERNAME";
|
||||
$password = "PASSWORD";
|
||||
$dbUsername = "USERNAME";
|
||||
$dbPassword = "PASSWORD";
|
||||
$dbName = "DBNAME";
|
||||
|
||||
//////////////////////////// DEVELOPER ///////////////////////////////
|
||||
@ -29,9 +29,6 @@ $gameDataTableName = "games"; // table containing replay data
|
||||
$tournamentDataTableName = "tournaments"; // tournament data table
|
||||
$adminUserTableName = "safeadmins";
|
||||
|
||||
$passwordLength = 8; // default minimum random password length
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@ -53,8 +50,10 @@ isAdmin BOOL,
|
||||
username VARCHAR(30) NOT NULL,
|
||||
password VARCHAR(255),
|
||||
discord VARCHAR(50),
|
||||
discordLink VARCHAR(150),
|
||||
twitch VARCHAR(50),
|
||||
youtube VARCHAR(50),
|
||||
youtubeLink VARCHAR(150),
|
||||
userCreated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
userUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
)";
|
||||
@ -68,8 +67,10 @@ isAdmin BOOL,
|
||||
username VARCHAR(30) NOT NULL,
|
||||
password VARCHAR(255),
|
||||
discord VARCHAR(50),
|
||||
discordLink VARCHAR(150),
|
||||
twitch VARCHAR(50),
|
||||
youtube VARCHAR(50),
|
||||
youtubeLink VARCHAR(150),
|
||||
userCreated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
userUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
)";
|
||||
|
@ -12,12 +12,13 @@
|
||||
|
||||
<body class="sqlOutput">
|
||||
<?php
|
||||
function initialiseDatabase() {
|
||||
// USER-DEFINED VARIABLES
|
||||
include("../db_config.php"); // Include database stuff
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
echo "<p>Connected successfully</p>";
|
||||
@ -135,6 +136,7 @@
|
||||
|
||||
// Tell the user we're done
|
||||
echo "<p style=\"font-weight:bold\">DONE!</p>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
@ -30,19 +30,19 @@ session_start();
|
||||
include ("db_config.php");
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "SQL connection failed: " . $e->getMessage();
|
||||
}
|
||||
|
||||
// Check if the admin table exists
|
||||
$sqlCheckAdminTable = $conn->prepare("SHOW TABLES LIKE '" . $adminUserTableName . "'");
|
||||
|
||||
// Run the query
|
||||
$sqlCheckAdminTable->execute();
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "SQL connection failed: " . $e->getMessage();
|
||||
}
|
||||
|
||||
//Check if any rows exist
|
||||
$count = $sqlCheckAdminTable->rowCount();
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/db_management.css" />
|
||||
<title>no title</title>
|
||||
</head>
|
||||
@ -13,29 +14,29 @@
|
||||
<?php
|
||||
// USER-DEFINED VARIABLES
|
||||
include("../db_config.php"); // Include database stuff
|
||||
include("../db_management/initialise.php");
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
|
||||
// Check if the users table exists already
|
||||
$sqlCheckUserTable = $conn->prepare("SHOW TABLES LIKE '" . $adminUserTableName . "'");
|
||||
$sqlCheckAdminUserTable = $conn->prepare("SHOW TABLES LIKE '" . $adminUserTableName . "'");
|
||||
|
||||
// Run the query
|
||||
$sqlCheckUserTable->execute();
|
||||
$sqlCheckAdminUserTable->execute();
|
||||
|
||||
//Check if any rows exist - if not, create the table
|
||||
$count = $sqlCheckUserTable->rowCount();
|
||||
$adminCount = $sqlCheckAdminUserTable->rowCount();
|
||||
|
||||
if ($count == 0) {
|
||||
echo "<p>Admins table not found! Probably initial setup. Creating...</p>";
|
||||
if ($adminCount == 0) {
|
||||
echo "<p>Admins table not found! This is probably initial setup.</p><p>Creating safe admins table...</p>";
|
||||
try {
|
||||
$conn->query($sqlCreateAdminTable);
|
||||
echo "<p>Table '" . $adminUserTableName . "' successfully created (safe admins)</p>";
|
||||
echo "<p>After we finish creating your user, you will need to use the \"Initialize Databases\" option in the admin panel before you can begin to use your server</p>";
|
||||
} catch (PDOException $e) {
|
||||
echo $sqlCreateUserTable . "<br>" . $e->getMessage();
|
||||
}
|
||||
@ -45,9 +46,11 @@
|
||||
// Variables for the various input fields
|
||||
$username = $_POST["username"];
|
||||
$password = password_hash($_POST["password"], PASSWORD_DEFAULT); // Hash the password for security
|
||||
$discord = $_POST["discord"];
|
||||
$twitch = $_POST["twitch"];
|
||||
$discord = $_POST["discord"];
|
||||
$discordLink = $_POST["discordLink"];
|
||||
$youtube = $_POST["youtube"];
|
||||
$youtubeLink = $_POST["youtubeLink"];
|
||||
|
||||
// Gotta check and make sure the user we're creating is an admin
|
||||
$isAdmin = 0;
|
||||
@ -57,18 +60,68 @@
|
||||
}
|
||||
|
||||
// Prepare the query
|
||||
$insert = $conn->prepare("INSERT INTO " . $adminUserTableName . " (username, password, discord, twitch, youtube, isAdmin) VALUES (:username, :password, :discord, :twitch, :youtube, :isAdmin)");
|
||||
$insert = $conn->prepare("INSERT INTO " . $adminUserTableName . " (username, password, discord, discordLink, twitch, youtube, youtubeLink, isAdmin) VALUES (:username, :password, :discord, :discordLink, :twitch, :youtube, :youtubeLink, :isAdmin)");
|
||||
|
||||
// Bind parameters to the query
|
||||
$insert->bindParam(":username", $username);
|
||||
$insert->bindParam(":password", $password);
|
||||
$insert->bindParam(":discord", $discord);
|
||||
$insert->bindParam(":discordLink", $discordLink);
|
||||
$insert->bindParam(":twitch", $twitch);
|
||||
$insert->bindParam(":youtube", $youtube);
|
||||
$insert->bindParam(":youtubeLink", $youtubeLink);
|
||||
$insert->bindParam(":isAdmin", $isAdmin);
|
||||
|
||||
// Execute
|
||||
$insert->execute();
|
||||
|
||||
// Check if users table exists, if not run the initialize script, otherwise just make the user
|
||||
|
||||
$sqlCheckUserTable = $conn->prepare("SHOW TABLES LIKE " . $userTableName);
|
||||
|
||||
// Run the query, if the table doesn't exist, initialize the database first
|
||||
if ($sqlCheckUserTable !== false && $sqlCheckUserTable->rowCount() > 0) {
|
||||
echo "<p>Users table found</p>";
|
||||
|
||||
// Now add them to the regular users table as well
|
||||
// Prepare the query
|
||||
$insert = $conn->prepare("INSERT INTO " . $userTableName . " (username, password, discord, discordLink, twitch, youtube, youtubeLink, isAdmin) VALUES (:username, :password, :discord, :discordLink, :twitch, :youtube, :youtubeLink, :isAdmin)");
|
||||
|
||||
// Bind parameters to the query
|
||||
$insert->bindParam(":username", $username);
|
||||
$insert->bindParam(":password", $password);
|
||||
$insert->bindParam(":discord", $discord);
|
||||
$insert->bindParam(":discordLink", $discordLink);
|
||||
$insert->bindParam(":twitch", $twitch);
|
||||
$insert->bindParam(":youtube", $youtube);
|
||||
$insert->bindParam(":youtubeLink", $youtubeLink);
|
||||
$insert->bindParam(":isAdmin", $isAdmin);
|
||||
|
||||
// Execute
|
||||
$insert->execute();
|
||||
} else {
|
||||
echo "<p>Users table not found! This is probably (still) initial setup. Creating...</p>";
|
||||
|
||||
initialiseDatabase();
|
||||
|
||||
|
||||
// Next we're going to copy any safe admins into the users table.
|
||||
// This will make userlists easier to work with
|
||||
//echo "<p>Copying users from safe admins...</p>";
|
||||
//$copyAdmins = $conn->prepare("INSERT INTO " . $userTableName . " SELECT * FROM " . $adminUserTableName);
|
||||
|
||||
//$copyAdmins->execute();
|
||||
//echo "<p>Copied!</p>";
|
||||
}
|
||||
|
||||
|
||||
if ($userCount == 0) {
|
||||
} else {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
echo "Safe Admin created successfully!";
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
|
@ -5,6 +5,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/db_management.css" />
|
||||
<title>no title</title>
|
||||
</head>
|
||||
@ -16,16 +17,40 @@
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
// Double-check to make sure the user isn't already in the database, i.e. if the user re-submits the form
|
||||
|
||||
// Check if the user exists
|
||||
$sqlUserCheck = $conn->prepare("SELECT username FROM " . $userTableName . "");
|
||||
|
||||
// Execute SQL query
|
||||
$sqlUserCheck->execute();
|
||||
|
||||
// Get results from the USERS table
|
||||
$results = $sqlUserCheck->fetch();
|
||||
|
||||
// Check if user exists
|
||||
if (mb_strtolower($_GET["username"]) == mb_strtolower($results["username"])) {
|
||||
// USER ALREADY EXISTS
|
||||
echo "<div class=userMessage>";
|
||||
echo "<p>Fatal error</p>";
|
||||
echo "<p>Please go to the home page and try what you were doing again</p>";
|
||||
echo "<p> </p>";
|
||||
echo "<a href=\"/\" class=\"subNavLink\">HOME</a>";
|
||||
echo "</div>";
|
||||
} else {
|
||||
// USER DOES NOT EXIST
|
||||
// Variables for the various input fields
|
||||
$username = $_POST["username"];
|
||||
$password = password_hash($_POST["password"], PASSWORD_DEFAULT); // Hash the password for security
|
||||
$discord = $_POST["discord"];
|
||||
$discordLink = $_POST["discordLink"];
|
||||
$twitch = $_POST["twitch"];
|
||||
$youtube = $_POST["youtube"];
|
||||
$youtubeLink = $_POST["youtubeLink"];
|
||||
|
||||
$isAdmin = 0;
|
||||
|
||||
@ -33,14 +58,16 @@
|
||||
$isAdmin = 1;
|
||||
}
|
||||
|
||||
$insert = $conn->prepare("INSERT INTO " . $userTableName . " (username, password, discord, twitch, youtube, isAdmin) VALUES (:username, :password, :discord, :twitch, :youtube, :isAdmin)");
|
||||
$insert = $conn->prepare("INSERT INTO " . $userTableName . " (username, password, discord, discordLink, twitch, youtube, youtubeLink, isAdmin) VALUES (:username, :password, :discord, :discordLink, :twitch, :youtube, :youtubeLink, :isAdmin)");
|
||||
|
||||
|
||||
$insert->bindParam(":username", $username);
|
||||
$insert->bindParam(":password", $password);
|
||||
$insert->bindParam(":discord", $discord);
|
||||
$insert->bindParam(":discordLink", $discordLink);
|
||||
$insert->bindParam(":twitch", $twitch);
|
||||
$insert->bindParam(":youtube", $youtube);
|
||||
$insert->bindParam(":youtubeLink", $youtubeLink);
|
||||
|
||||
$insert->bindParam(":isAdmin", $isAdmin);
|
||||
|
||||
@ -48,9 +75,18 @@
|
||||
if ($isAdmin == 1) {
|
||||
echo "New admin user \"" . $username . "\" created successfully";
|
||||
} else {
|
||||
echo "New user \"" . $username . "\" created successfully";
|
||||
echo "<div class=userMessage>";
|
||||
echo "<p>Account created! You may sign in now.</p>";
|
||||
echo "<p> </p>";
|
||||
echo "<a href=\"/\" class=\"subNavLink\">HOME</a>";
|
||||
echo "<a href=\"/login_page.php\" target=\"dataFrame\" class=\"subNavLink\">SIGN IN</a>";
|
||||
echo "<p> </p>";
|
||||
echo "</div>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "Connection failed: " . $e->getMessage();
|
||||
}
|
||||
|
@ -4,10 +4,10 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/admin.css" />
|
||||
<link rel="stylesheet" href="/styles/admin_nav.css" />
|
||||
<link rel="stylesheet" href="/styles/user_management.css" />
|
||||
<?php include ("../db_config.php");?> <!-- Our password-length variable is stored here -->
|
||||
<script src="/scripts/user_management.js"></script>
|
||||
<title>ADMIN CREATION FORM</title>
|
||||
</head>
|
||||
@ -24,15 +24,19 @@
|
||||
<label for="username" class="inputLabel" >Username:</label>
|
||||
<input type="text" id="username" name="username" class="newLine" maxlength="30" required/>
|
||||
<label for="password" class="inputLabel">Password:</label>
|
||||
<input type="password" id="password" name="password" required/>
|
||||
<input type="password" id="password" name="password" required minlength="6"/>
|
||||
<input type="checkbox" id="showPassword" name="showPassword" class="passwordOptions" onclick="displayPassword()"/>
|
||||
<label for="showPassword" class="passwordOptions" id="displayPassword" class="newLine">(show)</label>
|
||||
<label for="discord" class="newLine">Discord:</label>
|
||||
<input type="text" id="discord" name="discord" class="newLine" maxlength="50"/>
|
||||
<label for="discord" class="newLine">Discord Link:</label>
|
||||
<input type="text" id="discordLink" name="discordLink" class="newLine" maxlength="50"/>
|
||||
<label for="twitch" class="newLine">Twitch:</label>
|
||||
<input type="text" id="twitch" name="twitch" class="newLine" maxlength="50" />
|
||||
<label for="youtube" class="newLine">Youtube:</label>
|
||||
<input type="text" id="youtube" name="youtube" class="newLine" maxlength="50" />
|
||||
<label for="youtube" class="newLine">Youtube Link:</label>
|
||||
<input type="text" id="youtubeLink" name="youtubeLink" class="newLine" maxlength="50" />
|
||||
</div>
|
||||
<hr>
|
||||
<!-- THIS DIV IS FOR EXTRA SETTINGS -->
|
||||
|
133
admin/user_management/edit_user.php
Normal file
133
admin/user_management/edit_user.php
Normal file
@ -0,0 +1,133 @@
|
||||
<?php session_start() ?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/db_management.css" />
|
||||
<title>no title</title>
|
||||
</head>
|
||||
|
||||
<body class="sqlOutput">
|
||||
<?php
|
||||
// USER-DEFINED VARIABLES
|
||||
include("../db_config.php"); // Include database stuff
|
||||
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
|
||||
// Grab session username to make sure we're updating the person logged in
|
||||
$username = $_SESSION["username"];
|
||||
|
||||
|
||||
// Grab the existing data, so we can only update the things that got updated
|
||||
$sqlGetUserInfo = $conn->prepare("SELECT * FROM " . $userTableName . " WHERE username=\"" . $username . "\"");
|
||||
$sqlGetUserInfo->execute();
|
||||
|
||||
$userInfo = $sqlGetUserInfo->fetch(); // fetch row
|
||||
|
||||
// These IF blocks check if the data entered is different from the data already in the DB
|
||||
// If the information is the same then we copy the stuff over, otherwise write it
|
||||
|
||||
if ($_POST["twitch"] != $userInfo["twitch"] && $_POST["twitch"] != "") {
|
||||
$twitch = $_POST["twitch"];
|
||||
} else {
|
||||
$twitch = $userInfo["twitch"];
|
||||
}
|
||||
echo $twitch;
|
||||
echo "<p></p>";
|
||||
|
||||
if ($_POST["youtube"] != $userInfo["youtube"] && $_POST["youtube"] != "") {
|
||||
$youtube = $_POST["youtube"];
|
||||
} else {
|
||||
$youtube = $userInfo["youtube"];
|
||||
}
|
||||
echo $youtube;
|
||||
echo "<p></p>";
|
||||
|
||||
if ($_POST["youtubeLink"] != $userInfo["youtubeLink"] && $_POST["youtubeLink"] != "") {
|
||||
$youtubeLink = $_POST["youtubeLink"];
|
||||
} else {
|
||||
$youtubeLink = $userInfo["youtubeLink"];
|
||||
}
|
||||
echo $youtubeLink;
|
||||
echo "<p></p>";
|
||||
|
||||
if ($_POST["discord"] != $userInfo["discord"] && $_POST["discord"] != "") {
|
||||
$discord = $_POST["discord"];
|
||||
} else {
|
||||
$discord = $userInfo["discord"];
|
||||
}
|
||||
echo $discord;
|
||||
echo "<p></p>";
|
||||
|
||||
if ($_POST["discordLink"] != $userInfo["discordLink"] && $_POST["discordLink"] != "") {
|
||||
$discordLink = $_POST["discordLink"];
|
||||
} else {
|
||||
$discordLink = $userInfo["discordLink"];
|
||||
}
|
||||
echo $discordLink;
|
||||
echo "<p></p>";
|
||||
|
||||
|
||||
|
||||
// Prepare the command
|
||||
$update = $conn->prepare("UPDATE " . $userTableName . " SET
|
||||
twitch = :twitch,
|
||||
youtube = :youtube,
|
||||
youtubeLink = :youtubeLink,
|
||||
discord = :discord,
|
||||
discordLink = :discordLink
|
||||
WHERE username = :username
|
||||
");
|
||||
|
||||
// Bind parameters to query
|
||||
$update->bindParam(":username", $username);
|
||||
$update->bindParam(":twitch", $twitch);
|
||||
$update->bindParam(":youtube", $youtube);
|
||||
$update->bindParam(":youtubeLink", $youtubeLink);
|
||||
$update->bindParam(":discord", $discord);
|
||||
$update->bindParam(":discordLink", $discordLink);
|
||||
|
||||
$update->execute(); // Execute query
|
||||
|
||||
|
||||
// Function from StackOverflow used to get the base URL, to which we append
|
||||
// the redirect (where the user came from)
|
||||
function url(){
|
||||
return sprintf(
|
||||
"%s://%s/user/%s",
|
||||
isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
|
||||
$_SERVER['SERVER_NAME'],
|
||||
$_SESSION["username"]
|
||||
);
|
||||
}
|
||||
|
||||
$address = url();
|
||||
|
||||
// Redirect user back to their page
|
||||
echo "<script>window.top.location.href = \"" . $address . "\";</script>";
|
||||
|
||||
echo "<p>Account successfully updated</p>";
|
||||
echo "<p>You should have been redirected to your account. Here's a link:</p>";
|
||||
echo "<p><a href=\"/user/" . $_SESSION["username"] . " \">My Account</a></p>";
|
||||
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "Connection failed: " . $e->getMessage();
|
||||
}
|
||||
|
||||
$conn = null;
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -4,10 +4,10 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/admin.css" />
|
||||
<link rel="stylesheet" href="/styles/admin_nav.css" />
|
||||
<link rel="stylesheet" href="/styles/user_management.css" />
|
||||
<?php include ("../db_config.php");?> <!-- Our password-length variable is stored here -->
|
||||
<script src="/scripts/user_management.js"></script>
|
||||
<title>USER CREATION FORM</title>
|
||||
</head>
|
||||
@ -24,15 +24,19 @@
|
||||
<label for="username" class="inputLabel" >Username:</label>
|
||||
<input type="text" id="username" name="username" maxlength="30" required/>
|
||||
<label for="password" class="inputLabel newLine">Password:</label>
|
||||
<input type="password" id="password" name="password" required/>
|
||||
<input type="password" id="password" name="password" minlength="6" required/>
|
||||
<input type="checkbox" id="showPassword" name="showPassword" class="passwordOptions" onclick="displayPassword()"/>
|
||||
<label for="showPassword" class="passwordOptions" id="displayPassword" class="newLine">(show)</label>
|
||||
<label for="discord" class="newLine">Discord:</label>
|
||||
<input type="text" id="discord" name="discord" class="newLine" maxlength="50"/>
|
||||
<label for="discord" class="newLine">Discord Link:</label>
|
||||
<input type="text" id="discordLink" name="discordLink" class="newLine" maxlength="50"/>
|
||||
<label for="twitch" class="newLine">Twitch:</label>
|
||||
<input type="text" id="twitch" name="twitch" class="newLine" maxlength="50" />
|
||||
<label for="youtube" class="newLine">Youtube:</label>
|
||||
<input type="text" id="youtube" name="youtube" class="newLine" maxlength="50" />
|
||||
<label for="youtube" class="newLine">Youtube Link:</label>
|
||||
<input type="text" id="youtubeLink" name="youtubeLink" class="newLine" maxlength="50" />
|
||||
</div>
|
||||
<hr>
|
||||
<!-- THIS DIV IS FOR EXTRA SETTINGS -->
|
||||
|
@ -4,7 +4,7 @@ include("admin/db_config.php"); // Include database
|
||||
// This grabs the list of users to check and make sure we aren't creating duplicates
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
@ -37,11 +37,11 @@ try { // Try opening the SQL database connection
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="styles/admin.css" />
|
||||
<link rel="stylesheet" href="styles/admin_nav.css" />
|
||||
<link rel="stylesheet" href="styles/user_management.css" />
|
||||
<link rel="stylesheet" href="/styles/admin.css" />
|
||||
<link rel="stylesheet" href="/styles/admin_nav.css" />
|
||||
<link rel="stylesheet" href="/styles/user_management.css" />
|
||||
<?php include ("admin/db_config.php");?> <!-- Our password-length variable is stored here -->
|
||||
<script src="scripts/user_management.js"></script>
|
||||
<script src="/scripts/user_management.js"></script>
|
||||
<title>USER CREATION FORM</title>
|
||||
<script>var userList = <?php echo json_encode($userList); ?>; // Convert array from PHP to JS</script>
|
||||
</head>
|
||||
@ -52,7 +52,7 @@ try { // Try opening the SQL database connection
|
||||
<p>Get started on your trophy-winning journey with your very own TrojanDestinyRL account!</p>
|
||||
<hr>
|
||||
<p></p>
|
||||
<form id="userForm" action="admin/user_management/add_user.php" onsubmit="return verifyInput()" method="POST" target="dataFrame" >
|
||||
<form id="userForm" action="/admin/user_management/add_user.php" onsubmit="return verifyInput()" method="POST" target="dataFrame" >
|
||||
<!-- THIS DIV IS FOR INPUT -->
|
||||
<div id="textInputArea">
|
||||
<label for="username" class="inputLabel">Username:</label>
|
||||
|
@ -25,15 +25,15 @@ session_start();
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="divTableLeftColumn">Open</td>
|
||||
<td class="divTableRightColumn"><img src="assets/plat3.webp" title="Plat 3" alt="plat 3" width="40px"></td>
|
||||
<td class="divTableRightColumn"><img src="/assets/plat3.webp" title="Plat 3" alt="plat 3" width="40px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="divTableLeftColumn">Intermediate</td>
|
||||
<td class="divTableRightColumn"><img src="assets/champ3.webp" title="Champ 3" alt="champ 3" width="40px"></td>
|
||||
<td class="divTableRightColumn"><img src="/assets/champ3.webp" title="Champ 3" alt="champ 3" width="40px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="divTableLeftColumn">Main</td>
|
||||
<td class="divTableRightColumn"><img src="assets/SSL.webp" title="SSL" alt="Supersonic Legend" width="40px"></td>
|
||||
<td class="divTableRightColumn"><img src="/assets/SSL.webp" title="SSL" alt="Supersonic Legend" width="40px"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
25
index.php
25
index.php
@ -8,7 +8,7 @@ session_start();
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<script src="scripts/tools.js"></script>
|
||||
<script src="/scripts/tools.js"></script>
|
||||
<title>Trojan's Trophy Room</title>
|
||||
</head>
|
||||
|
||||
@ -18,30 +18,31 @@ session_start();
|
||||
<h4><a href="/giveaway" id="giveawayLink">Giveaway Disclaimer</a></h4>
|
||||
<h3>Choose a division to see results!</h3>
|
||||
<div class="navPanel">
|
||||
<a href="open.html" target="dataFrame" class="navLink">OPEN</a>
|
||||
<a href="intermediate.html" target="dataFrame" class="navLink">INTERMEDIATE</a>
|
||||
<a href="main.html" target="dataFrame" class="navLink">MAIN</a>
|
||||
<a href="/open.html" target="dataFrame" class="navLink">OPEN</a>
|
||||
<a href="/intermediate.html" target="dataFrame" class="navLink">INTERMEDIATE</a>
|
||||
<a href="/main.html" target="dataFrame" class="navLink">MAIN</a>
|
||||
<p class="newLine"></p>
|
||||
<a href="general.html" target="dataFrame" class="navLink">GENERAL (HOME)</a>
|
||||
<a href="/general.html" target="dataFrame" class="navLink">GENERAL (HOME)</a>
|
||||
</div>
|
||||
<p> </p>
|
||||
<iframe src="open.html" name="dataFrame" class="dataFrame" id="dataFrame" onload="resizeIframe(this);"></iframe>
|
||||
<iframe src="/open.html" name="dataFrame" class="dataFrame" id="dataFrame" onload="resizeIframe(this);"></iframe>
|
||||
<p class="newLine"></p>
|
||||
<p class="newLine"></p>
|
||||
<div class="subNav">
|
||||
<?php
|
||||
// Is the user is logged in we'll show them a navigation bar with some fancier options
|
||||
if (isset($_SESSION["userID"])){
|
||||
echo "<a href=\"logout.php \" class=\"subNavLink\">LOGOUT</a>";
|
||||
echo "<a href=\"admin/data_management/game_form.php \" target=\"dataFrame\" class=\"subNavLink\">ADD GAME DETAILS</a>";
|
||||
echo "<a href=\"/user/" . $_SESSION["username"] . " \" class=\"subNavLink\">ACCOUNT</a>";
|
||||
echo "<a href=\"/logout.php \" class=\"subNavLink\">LOGOUT</a>";
|
||||
echo "<a href=\"/admin/data_management/game_form.php \" target=\"dataFrame\" class=\"subNavLink\">ADD GAME DETAILS</a>";
|
||||
// Anything we need to show to logged in admins will be below
|
||||
if (isset($_SESSION["isAdmin"]) && $_SESSION["isAdmin"] == 1){
|
||||
echo "<a href=\"admin/data_management/tourney_form.php \" target=\"dataFrame\" class=\"subNavLink\">ADD A TOURNEY</a>";
|
||||
echo "<a href=\"admin \" class=\"subNavLink\">ADMIN PANEL</a>";
|
||||
echo "<a href=\"/admin/data_management/tourney_form.php \" target=\"dataFrame\" class=\"subNavLink\">ADD A TOURNEY</a>";
|
||||
echo "<a href=\"/admin \" class=\"subNavLink\">ADMIN PANEL</a>";
|
||||
}
|
||||
} else {
|
||||
echo "<a href=\"login_page.php \" target=\"dataFrame\" class=\"subNavLink\">SIGN IN</a>";
|
||||
echo "<a href=\"create_account.php \" target=\"dataFrame\" class=\"subNavLink\">CREATE AN ACCOUNT</a>";
|
||||
echo "<a href=\"/login_page.php \" target=\"dataFrame\" class=\"subNavLink\">SIGN IN</a>";
|
||||
echo "<a href=\"/create_account.php \" target=\"dataFrame\" class=\"subNavLink\">CREATE AN ACCOUNT</a>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
@ -20,7 +20,7 @@ session_start();
|
||||
include("admin/db_config.php"); // Include database stuff
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $username, $password);
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
|
@ -17,13 +17,13 @@ $redirect = $_GET["redirect"];
|
||||
<body id="loginBody">
|
||||
<h3 id="loginNotice">Sign in to continue</h3>
|
||||
<div id="loginPanel">
|
||||
<form id="loginForm" onsubmit="return verifyInput()" action="login.php?redirect=<?php echo $redirect; ?>" method="POST">
|
||||
<form id="loginForm" onsubmit="return verifyInput()" action="/login.php?redirect=<?php echo $redirect; ?>" method="POST">
|
||||
<div id="inputArea">
|
||||
<label for="username">Username:</label>
|
||||
<input type="text" name="username" id="username" required>
|
||||
<p class="newLine"></p>
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" name="password" id="password" required>
|
||||
<input type="password" name="password" id="password" minlength="6" required>
|
||||
<p class="newLine"></p>
|
||||
<label for="showPassword" id="showPasswordLabel">Show Password: </label>
|
||||
<input type="checkbox" name="showPassword" id="showPassword" onchange="displayPassword();">
|
||||
|
@ -32,12 +32,7 @@ function verifyInput() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if a password is required, if so, make sure one is entered
|
||||
var password = document.forms["userForm"]["password"].value;
|
||||
if (!(document.getElementById("none").checked) && password == "") {
|
||||
alert ("Must enter a password! Or select \"None\" for no password (not available for administrator accounts).");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ensure the password (if enabled) is at least 6 characters in length
|
||||
if (!(document.getElementById("none").checked) && password.length < 6) {
|
||||
|
@ -36,3 +36,16 @@
|
||||
width: 400px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.userMessage {
|
||||
text-align: center;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
.userMessage a{
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.subNavLink a {
|
||||
margin: 10px !important;
|
||||
}
|
@ -3,6 +3,11 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
pointer-events: none;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#body {
|
||||
background-image: linear-gradient(to right, rgba(0, 0, 255, .8), rgba(255, 165, 0, .8));
|
||||
padding-top: 2%;
|
||||
@ -139,6 +144,27 @@ For all the things at the bottom of the page; log in/out, 'my account', etc.
|
||||
}
|
||||
|
||||
|
||||
.submitButton input[type="submit"] {
|
||||
margin: auto;
|
||||
padding: 8px 25px;
|
||||
font-size: 150%;
|
||||
font-weight: bold;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
border-radius: 6px;
|
||||
border: 1px solid blue;
|
||||
box-shadow: 0px 2px 4px;
|
||||
}
|
||||
|
||||
.submitButton input[type="submit"]:hover {
|
||||
color: black;
|
||||
background-color: rgba(255, 165, 0, .6);
|
||||
}
|
||||
|
||||
.submitButton input[type="submit"]:active {
|
||||
box-shadow: 0px 0px 2px;
|
||||
transform: translateY(2px);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,38 +1,3 @@
|
||||
#confirmButton {
|
||||
position: relative;
|
||||
flex-wrap: wrap;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
border: 1px solid blue;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0px 2px 4px;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
width: 100px;
|
||||
padding: 10px;
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#confirmButton:hover {
|
||||
color: black;
|
||||
background-color: rgba(255, 165, 0, .6);
|
||||
}
|
||||
|
||||
#confirmButton:active {
|
||||
box-shadow: 0px 0px 2px;
|
||||
transform: translateY(2px);
|
||||
}
|
||||
|
||||
.sqlOutput {
|
||||
border: 1px solid black;
|
||||
border-radius: 5px;
|
||||
width: 400px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#userFormPanel {
|
||||
width: 500px;
|
||||
}
|
||||
@ -51,6 +16,128 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#accountDetailsBody {
|
||||
width: 750px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
#accountDetailsPanel {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
width: 45%;
|
||||
border: 1px solid black;
|
||||
border-radius: 3px;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
margin-right: 2%;
|
||||
padding: 5px;
|
||||
padding-bottom: 25px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#accountSocialsPanel {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
width: 45%;
|
||||
border: 1px solid black;
|
||||
border-radius: 3px;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
margin-right: 2%;
|
||||
padding: 5px;
|
||||
padding-bottom: 25px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#accountSocialsPanel p {
|
||||
height: 25px;
|
||||
}
|
||||
#accountDetailsPanel p {
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
#accountDetailsPanel h3 {
|
||||
text-align: center;
|
||||
}
|
||||
#accountSocialsPanel h3 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.accountDetailsLeftSide {
|
||||
width: 40%;
|
||||
text-align: left;
|
||||
padding-left: 10%;
|
||||
}
|
||||
|
||||
.accountDetailsRightSide {
|
||||
width: 40%;
|
||||
text-align: right;
|
||||
padding-right: 10%;
|
||||
justify-content: right;
|
||||
}
|
||||
|
||||
.detailsBold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#editUserDetails input[type="text"] {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#editUserDetails input[type="text"]::placeholder {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
.accountUpdateButton input[type="submit"] {
|
||||
margin: auto;
|
||||
padding: 5px 10px;
|
||||
font-weight: 600;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
border-radius: 3px;
|
||||
border: 1px solid blue;
|
||||
box-shadow: 0px 2px 4px;
|
||||
}
|
||||
|
||||
.accountUpdateButton input[type="submit"]:hover {
|
||||
color: black;
|
||||
background-color: rgba(255, 165, 0, .6);
|
||||
}
|
||||
|
||||
.accountUpdateButton input[type="submit"]:active {
|
||||
box-shadow: 0px 0px 2px;
|
||||
transform: translateY(2px);
|
||||
}
|
||||
|
||||
#changePasswordButton {
|
||||
margin: auto;
|
||||
padding: 5px 10px;
|
||||
font-weight: 600;
|
||||
font-size: 75%;
|
||||
text-decoration: none;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
border-radius: 3px;
|
||||
border: 1px solid blue;
|
||||
box-shadow: 0px 2px 4px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#changePasswordButton:hover {
|
||||
color: black;
|
||||
background-color: rgba(255, 165, 0, .6);
|
||||
}
|
||||
|
||||
#changePasswordButton:active {
|
||||
box-shadow: 0px 0px 2px;
|
||||
transform: translateY(2px);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#textInputArea {
|
||||
display: flex;
|
||||
@ -175,7 +262,3 @@
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
||||
.newLine {
|
||||
width: 100%;
|
||||
}
|
||||
|
175
user/account.php
Normal file
175
user/account.php
Normal file
@ -0,0 +1,175 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
include("../admin/db_config.php"); // Include database stuff
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
$username = $_GET["username"];
|
||||
|
||||
$sqlGetUserDetails = $conn->prepare("SELECT * FROM " . $userTableName . " HAVING username=\"" . $username . "\"");
|
||||
//$sqlGetGameDetails = $conn->prepare("SELECT");
|
||||
$sqlGetTourneyDetails = $conn->prepare("SELECT winner1,winner2,winner3,winner4,tournamentDivision FROM " . $tournamentDataTableName . " HAVING winner1=\"" . $username . "\" OR winner2=\"" . $username . "\" OR winner3=\"" . $username . "\" OR winner4=\"" . $username . "\"");
|
||||
|
||||
// Execute SQL query
|
||||
$sqlGetUserDetails->execute();
|
||||
$sqlGetTourneyDetails->execute();
|
||||
|
||||
// Get user creation date
|
||||
$userDetails = $sqlGetUserDetails->fetch();
|
||||
$dateCreated = new DateTime($userDetails["userCreated"]);
|
||||
|
||||
// Get tournament details
|
||||
$tourneyDetails = $sqlGetTourneyDetails->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Variables to count wins
|
||||
$mainWins = 0; // main division
|
||||
$intWins = 0; // intermediate division
|
||||
$openWins = 0; // open division
|
||||
foreach ($tourneyDetails as $tourneyResult) {
|
||||
if ($tourneyResult["tournamentDivision"] == "main") {
|
||||
$mainWins++;
|
||||
} else if ($tourneyResult["tournamentDivision"] == "intermediate") {
|
||||
$intWins++;
|
||||
} else if ($tourneyResult["tournamentDivision"] == "open") {
|
||||
$openWins++;
|
||||
}
|
||||
}
|
||||
$totalWins = $mainWins + $intWins + $openWins;
|
||||
|
||||
// Set the displayed username to what the user signed up with
|
||||
$username = $userDetails["username"];
|
||||
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "Connection failed: " . $e->getMessage();
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/data.css" />
|
||||
<link rel="stylesheet" href="/styles/user_management.css" />
|
||||
<link rel="stylesheet" href="/styles/db_management.css" />
|
||||
<title>User Account Management</title>
|
||||
</head>
|
||||
|
||||
<body id="accountDetailsBody">
|
||||
<div id="accountDetailsPanel">
|
||||
<h3>Info</h3>
|
||||
<p class="newLine"></p>
|
||||
<div class="accountDetailsLeftSide">
|
||||
<p class="detailsBold">Username:</p>
|
||||
<p class="detailsBold">Date Joined:</p>
|
||||
<p class="detailsBold">Total trophies:</p>
|
||||
<p> By division:</p>
|
||||
<p> Open:</p>
|
||||
<p> Intermediate:</p>
|
||||
<p> Main:</p>
|
||||
<p> </p>
|
||||
</div>
|
||||
<div class="accountDetailsRightSide">
|
||||
<p><?php echo $username ?></p>
|
||||
<p><?php echo $dateCreated->format('F j, Y'); ?></p>
|
||||
<p><?php echo $totalWins; ?></p>
|
||||
<p> </p>
|
||||
<p><?php echo $openWins; ?></p>
|
||||
<p><?php echo $intWins; ?></p>
|
||||
<p><?php echo $mainWins; ?></p>
|
||||
<p> </p>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if (mb_strtolower($username) == mb_strtolower($_SESSION["username"])) {
|
||||
echo ("
|
||||
<div id=\"accountSocialsPanel\">
|
||||
<h3>Edit</h3>
|
||||
<p class=\"newLine\"></p>
|
||||
<div class=\"accountDetailsLeftSide\">
|
||||
<p>Twitch (name):</p>
|
||||
<p>YouTube (name):</p>
|
||||
<p>YouTube (link):</p>
|
||||
<p>Discord (name):</p>
|
||||
<p>Discord (link):</p>
|
||||
<p> </p>
|
||||
<p><a href=\"/admin/user_management/change_password.php\" id=\"changePasswordButton\" class=\"disabled\">Change Password</a></p>
|
||||
<p>(coming soon!)</p>
|
||||
</div>
|
||||
<div class=\"accountDetailsRightSide\">
|
||||
<form id=\"editUserDetails\" action=\"/admin/user_management/edit_user.php\" method=\"post\">
|
||||
<p><input type=\"text\" placeholder=\"" . $userDetails["twitch"] . "\" id=\"twitch\" name=\"twitch\"></p>
|
||||
<p><input type=\"text\" placeholder=\"" . $userDetails["youtube"] . "\" id=\"youtube\" name=\"youtube\"></p>
|
||||
<p><input type=\"text\" placeholder=\"" . $userDetails["youtubeLink"] . "\" id=\"youtubeLink\" name=\"youtubeLink\"></p>
|
||||
<p><input type=\"text\" placeholder=\"" . $userDetails["discord"] . "\" id=\"discord\" name=\"discord\"></p>
|
||||
<p><input type=\"text\" placeholder=\"" . $userDetails["discordLink"] . "\" id=\"discordLink\" name=\"discordLink\"></p>
|
||||
<p> </p>
|
||||
<div class=\"accountUpdateButton\">
|
||||
<input type=\"submit\" id=\"submitButton\" value=\"Update\">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
");
|
||||
} else {
|
||||
echo ("
|
||||
<div id=\"accountSocialsPanel\">
|
||||
<h3>Socials</h3>
|
||||
<p class=\"newLine\"></p>
|
||||
<div class=\"accountDetailsLeftSide\">
|
||||
<p>Twitch:</p>
|
||||
<p>YouTube:</p>
|
||||
<p>Discord:</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
</div>
|
||||
<div class=\"accountDetailsRightSide\">
|
||||
");
|
||||
if (isset($userDetails["twitch"]) && $userDetails["twitch"] != "") {
|
||||
echo ("<p><a href=\"https://twitch.tv/\"" . $userDetails["twitch"] . "> " . $userDetails["twitch"] . "</a></p>");
|
||||
} else {
|
||||
echo ("<p>none</p>");
|
||||
}
|
||||
|
||||
if (isset($userDetails["youtube"]) && $userDetails["youtube"] != "") {
|
||||
if (isset($userDetails["youtubeLink"]) && $userDetails["youtubeLink"] != "") {
|
||||
echo ("<p><a href=" . $userDetails["youtubeLink"] . "> " . $userDetails["youtube"] . "</a></p>");
|
||||
} else {
|
||||
echo ("<p>" . $userDetails["youtube"] . "</a></p>");
|
||||
}
|
||||
} else {
|
||||
echo ("<p>none</p>");
|
||||
}
|
||||
|
||||
if (isset($userDetails["discord"]) && $userDetails["discord"] != "") {
|
||||
if (isset($userDetails["discordLink"]) && $userDetails["discordLink"] != "") {
|
||||
echo ("<p><a href=" . $userDetails["discordLink"] . "> " . $userDetails["discord"] . "</a></p>");
|
||||
} else {
|
||||
echo ("<p>" . $userDetails["discord"] . "</a></p>");
|
||||
}
|
||||
} else {
|
||||
echo ("<p>none</p>");
|
||||
}
|
||||
|
||||
|
||||
echo ("
|
||||
</div>
|
||||
</div>
|
||||
");
|
||||
}
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
77
user/user.php
Normal file
77
user/user.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
include("../admin/db_config.php"); // Include database stuff
|
||||
|
||||
try { // Try opening the SQL database connection
|
||||
$conn = new PDO("mysql:host=$servername; dbname=$dbName", $dbUsername, $dbPassword);
|
||||
// set the PDO error mode to exception
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
// Check if the user exists
|
||||
$sqlGetUserList = $conn->prepare("SELECT username FROM " . $userTableName . " WHERE username=\"" . $_GET["username"] . "\"");
|
||||
|
||||
|
||||
// Execute SQL query
|
||||
$sqlGetUserList->execute();
|
||||
|
||||
// Get results from the USERS table
|
||||
$results = $sqlGetUserList->fetch();
|
||||
|
||||
// Check if user exists
|
||||
if (mb_strtolower($_GET["username"]) == mb_strtolower($results["username"])) {
|
||||
$userExists = true;
|
||||
} else {
|
||||
$userExists = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
} catch (PDOException $e) { // failed connection
|
||||
echo "Connection failed: " . $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<link rel="stylesheet" href="/styles/primary.css" />
|
||||
<link rel="stylesheet" href="/styles/user_management.css" />
|
||||
<script src="/scripts/tools.js"></script>
|
||||
<title>My Account - Trojan's Trophy Room</title>
|
||||
</head>
|
||||
|
||||
<body id="body">
|
||||
<script>getURL();</script>
|
||||
<div id="contentFrame">
|
||||
<h1>Trojan's Trophy Room</h1>
|
||||
<h2 id="adminHeader">My Account</h2>
|
||||
<?php
|
||||
if ($userExists) {
|
||||
echo ("<iframe src=\"/user/account.php?username=" . $_GET["username"] . "\" name=\"dataFrame\" class=\"dataFrame\" id=\"dataFrame\" onload=\"resizeIframe(this);\"></iframe>");
|
||||
} else {
|
||||
echo "<p>USER NO EXISTS</p>";
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="subNav">
|
||||
<?php
|
||||
if (isset($_SESSION["isAdmin"]) && $_SESSION["isAdmin"] == 1) {
|
||||
echo "<a href=\"/admin/\" class=\"subNavLink\" id=\"adminHomeButton\">ADMIN PANEL</a>";
|
||||
}
|
||||
?>
|
||||
<a href="../" class="subNavLink" id="mainHomeButton">HOME</a>
|
||||
<p class="newLine"></p>
|
||||
<?php
|
||||
if (isset($_SESSION["userID"])){
|
||||
echo "<a href=\"../logout.php?redirect=\" class=\"subNavLink\" id=\"loginButton\">LOGOUT</a>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
x
Reference in New Issue
Block a user