mirror of
https://github.com/gabrielkheisa/tugas-pjpb.git
synced 2024-11-23 12:03:15 +07:00
first
This commit is contained in:
parent
efc709d079
commit
ad3f499895
27
README.md
27
README.md
@ -1 +1,28 @@
|
|||||||
|
<h1>Tugas Kelompok PJPB - Smart Contracts</h1>
|
||||||
|
|
||||||
|
<h2>Anggota kelompok</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Arina Salma Salsabila (20/459170/PA/19831)</li>
|
||||||
|
<li>Gabriel Possenti Kheisa Drianasta (19/442374/PA/19123)</li>
|
||||||
|
<li>Gregorius Adi Pradana (20/455382/PA/19597)</li>
|
||||||
|
<li>Haikal Abdurrahman (19/445563/PA/19387)</li>
|
||||||
|
<li>Timothy Cleytus Gultom (20/455390/PA/19605)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Teknologi</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Back end: PHP 7.2 (vanilla)</li>
|
||||||
|
<li>Database: MySQL</li>
|
||||||
|
<li>Hosting: DigitalOcean</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>URL frontend: <a href-"https://testapp.pjpb.gabrielkheisa.xyz/login.php">https://testapp.pjpb.gabrielkheisa.xyz/login.php</a><h2>
|
||||||
|
|
||||||
|
<h2>Video demonstrasi dan penjelasan: <a href="https://drive.google.com/drive/u/1/folders/1L0w71TZnqa41XFDGfoZ3mM8ILZQeZeXE">https://drive.google.com/drive/u/1/folders/1L0w71TZnqa41XFDGfoZ3mM8ILZQeZeXE</a></h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
16
config.php
Normal file
16
config.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
/* Database credentials. Assuming you are running MySQL
|
||||||
|
server with default setting (user 'root' with no password) */
|
||||||
|
define('DB_SERVER', '');
|
||||||
|
define('DB_USERNAME', '');
|
||||||
|
define('DB_PASSWORD', '');
|
||||||
|
define('DB_NAME', '');
|
||||||
|
|
||||||
|
/* Attempt to connect to MySQL database */
|
||||||
|
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
|
||||||
|
|
||||||
|
// Check connection
|
||||||
|
if($link === false){
|
||||||
|
die("ERROR: Could not connect. " . mysqli_connect_error());
|
||||||
|
}
|
||||||
|
?>
|
156
login.php
Normal file
156
login.php
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<?php
|
||||||
|
// Initialize the session
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
// Check if the user is already logged in, if yes then redirect him to welcome page
|
||||||
|
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
|
||||||
|
header("location: welcome.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include config file
|
||||||
|
require_once "config.php";
|
||||||
|
|
||||||
|
// Define variables and initialize with empty values
|
||||||
|
$username = $password = "";
|
||||||
|
$username_err = $password_err = $login_err = "";
|
||||||
|
|
||||||
|
// Processing form data when form is submitted
|
||||||
|
if($_SERVER["REQUEST_METHOD"] == "POST"){
|
||||||
|
|
||||||
|
// Check if username is empty
|
||||||
|
if(empty(trim($_POST["username"]))){
|
||||||
|
$username_err = "Please enter username.";
|
||||||
|
} else{
|
||||||
|
$username = trim($_POST["username"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if password is empty
|
||||||
|
if(empty(trim($_POST["password"]))){
|
||||||
|
$password_err = "Please enter your password.";
|
||||||
|
} else{
|
||||||
|
$password = trim($_POST["password"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate credentials
|
||||||
|
if(empty($username_err) && empty($password_err)){
|
||||||
|
// Prepare a select statement
|
||||||
|
$sql = "SELECT id, username, password, role, hash FROM user_pjpb WHERE username = ?";
|
||||||
|
|
||||||
|
if($stmt = mysqli_prepare($link, $sql)){
|
||||||
|
// Bind variables to the prepared statement as parameters
|
||||||
|
mysqli_stmt_bind_param($stmt, "s", $param_username);
|
||||||
|
|
||||||
|
// Set parameters
|
||||||
|
$param_username = $username;
|
||||||
|
|
||||||
|
// Attempt to execute the prepared statement
|
||||||
|
if(mysqli_stmt_execute($stmt)){
|
||||||
|
// Store result
|
||||||
|
mysqli_stmt_store_result($stmt);
|
||||||
|
|
||||||
|
// Check if username exists, if yes then verify password
|
||||||
|
if(mysqli_stmt_num_rows($stmt) == 1){
|
||||||
|
// Bind result variables
|
||||||
|
mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password, $role, $hash);
|
||||||
|
if(mysqli_stmt_fetch($stmt)){
|
||||||
|
if(password_verify($password, $hashed_password)){
|
||||||
|
// Password is correct, so start a new session
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
// Store data in session variables
|
||||||
|
$_SESSION["loggedin"] = true;
|
||||||
|
$_SESSION["id"] = $id;
|
||||||
|
$_SESSION["username"] = $username;
|
||||||
|
$_SESSION["role"] = $role;
|
||||||
|
$_SESSION["hash"] = $hash;
|
||||||
|
|
||||||
|
// Redirect user to welcome page
|
||||||
|
header("location: welcome.php");
|
||||||
|
} else{
|
||||||
|
// Password is not valid, display a generic error message
|
||||||
|
$login_err = "Invalid username or password.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
// Username doesn't exist, display a generic error message
|
||||||
|
$login_err = "Invalid username or password.";
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
echo "Oops! Something went wrong. Please try again later.";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close statement
|
||||||
|
mysqli_stmt_close($stmt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close connection
|
||||||
|
mysqli_close($link);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Login</title>
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<style>
|
||||||
|
body{ font: 14px sans-serif; }
|
||||||
|
.wrapper{ padding: 20px;
|
||||||
|
max-width:1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1200px) {
|
||||||
|
body {
|
||||||
|
|
||||||
|
font-size: 5em;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
.wrapper {
|
||||||
|
}
|
||||||
|
.form-control {
|
||||||
|
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.btn {
|
||||||
|
font-size: 0.8em;
|
||||||
|
height: 2em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
<h2>Login</h2>
|
||||||
|
<p>Please fill in your credentials to login.</p><br>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if(!empty($login_err)){
|
||||||
|
echo '<div class="alert alert-danger">' . $login_err . '</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Username</label>
|
||||||
|
<input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $username_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Password</label>
|
||||||
|
<input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $password_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="submit" class="btn btn-primary" value="Login">
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
logout.php
Normal file
14
logout.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
// Initialize the session
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
// Unset all of the session variables
|
||||||
|
$_SESSION = array();
|
||||||
|
|
||||||
|
// Destroy the session.
|
||||||
|
session_destroy();
|
||||||
|
|
||||||
|
// Redirect to login page
|
||||||
|
header("location: login.php");
|
||||||
|
exit;
|
||||||
|
?>
|
137
register.php
Normal file
137
register.php
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
<?php
|
||||||
|
// Include config file
|
||||||
|
require_once "config.php";
|
||||||
|
|
||||||
|
// Define variables and initialize with empty values
|
||||||
|
$username = $password = $confirm_password = "";
|
||||||
|
$username_err = $password_err = $confirm_password_err = "";
|
||||||
|
|
||||||
|
// Processing form data when form is submitted
|
||||||
|
if($_SERVER["REQUEST_METHOD"] == "POST"){
|
||||||
|
|
||||||
|
// Validate username
|
||||||
|
if(empty(trim($_POST["username"]))){
|
||||||
|
$username_err = "Please enter a username.";
|
||||||
|
} elseif(!preg_match('/^[a-zA-Z0-9_]+$/', trim($_POST["username"]))){
|
||||||
|
$username_err = "Username can only contain letters, numbers, and underscores.";
|
||||||
|
} else{
|
||||||
|
// Prepare a select statement
|
||||||
|
$sql = "SELECT id FROM user_pjpb WHERE username = ?";
|
||||||
|
|
||||||
|
if($stmt = mysqli_prepare($link, $sql)){
|
||||||
|
// Bind variables to the prepared statement as parameters
|
||||||
|
mysqli_stmt_bind_param($stmt, "s", $param_username);
|
||||||
|
|
||||||
|
// Set parameters
|
||||||
|
$param_username = trim($_POST["username"]);
|
||||||
|
|
||||||
|
// Attempt to execute the prepared statement
|
||||||
|
if(mysqli_stmt_execute($stmt)){
|
||||||
|
/* store result */
|
||||||
|
mysqli_stmt_store_result($stmt);
|
||||||
|
|
||||||
|
if(mysqli_stmt_num_rows($stmt) == 1){
|
||||||
|
$username_err = "This username is already taken.";
|
||||||
|
} else{
|
||||||
|
$username = trim($_POST["username"]);
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
echo "Oops! Something went wrong. Please try again later.";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close statement
|
||||||
|
mysqli_stmt_close($stmt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate password
|
||||||
|
if(empty(trim($_POST["password"]))){
|
||||||
|
$password_err = "Please enter a password.";
|
||||||
|
} elseif(strlen(trim($_POST["password"])) < 6){
|
||||||
|
$password_err = "Password must have atleast 6 characters.";
|
||||||
|
} else{
|
||||||
|
$password = trim($_POST["password"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate confirm password
|
||||||
|
if(empty(trim($_POST["confirm_password"]))){
|
||||||
|
$confirm_password_err = "Please confirm password.";
|
||||||
|
} else{
|
||||||
|
$confirm_password = trim($_POST["confirm_password"]);
|
||||||
|
if(empty($password_err) && ($password != $confirm_password)){
|
||||||
|
$confirm_password_err = "Password did not match.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check input errors before inserting in database
|
||||||
|
if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){
|
||||||
|
|
||||||
|
// Prepare an insert statement
|
||||||
|
$sql = "INSERT INTO user_pjpb (username, password) VALUES (?, ?)";
|
||||||
|
|
||||||
|
if($stmt = mysqli_prepare($link, $sql)){
|
||||||
|
// Bind variables to the prepared statement as parameters
|
||||||
|
mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password);
|
||||||
|
|
||||||
|
// Set parameters
|
||||||
|
$param_username = $username;
|
||||||
|
$param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash
|
||||||
|
|
||||||
|
// Attempt to execute the prepared statement
|
||||||
|
if(mysqli_stmt_execute($stmt)){
|
||||||
|
// Redirect to login page
|
||||||
|
header("location: login.php");
|
||||||
|
} else{
|
||||||
|
echo "Oops! Something went wrong. Please try again later.";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close statement
|
||||||
|
mysqli_stmt_close($stmt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close connection
|
||||||
|
mysqli_close($link);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Sign Up</title>
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<style>
|
||||||
|
body{ font: 14px sans-serif; }
|
||||||
|
.wrapper{ width: 360px; padding: 20px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
<h2>Sign Up</h2>
|
||||||
|
<p>Please fill this form to create an account.</p>
|
||||||
|
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Username</label>
|
||||||
|
<input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $username_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Password</label>
|
||||||
|
<input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $password; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $password_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Confirm Password</label>
|
||||||
|
<input type="password" name="confirm_password" class="form-control <?php echo (!empty($confirm_password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $confirm_password; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $confirm_password_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="submit" class="btn btn-primary" value="Submit">
|
||||||
|
<input type="reset" class="btn btn-secondary ml-2" value="Reset">
|
||||||
|
</div>
|
||||||
|
<p>Already have an account? <a href="login.php">Login here</a>.</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
106
reset-password.php
Normal file
106
reset-password.php
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
// Initialize the session
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
// Check if the user is logged in, otherwise redirect to login page
|
||||||
|
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
|
||||||
|
header("location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include config file
|
||||||
|
require_once "config.php";
|
||||||
|
|
||||||
|
// Define variables and initialize with empty values
|
||||||
|
$new_password = $confirm_password = "";
|
||||||
|
$new_password_err = $confirm_password_err = "";
|
||||||
|
|
||||||
|
// Processing form data when form is submitted
|
||||||
|
if($_SERVER["REQUEST_METHOD"] == "POST"){
|
||||||
|
|
||||||
|
// Validate new password
|
||||||
|
if(empty(trim($_POST["new_password"]))){
|
||||||
|
$new_password_err = "Please enter the new password.";
|
||||||
|
} elseif(strlen(trim($_POST["new_password"])) < 6){
|
||||||
|
$new_password_err = "Password must have atleast 6 characters.";
|
||||||
|
} else{
|
||||||
|
$new_password = trim($_POST["new_password"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate confirm password
|
||||||
|
if(empty(trim($_POST["confirm_password"]))){
|
||||||
|
$confirm_password_err = "Please confirm the password.";
|
||||||
|
} else{
|
||||||
|
$confirm_password = trim($_POST["confirm_password"]);
|
||||||
|
if(empty($new_password_err) && ($new_password != $confirm_password)){
|
||||||
|
$confirm_password_err = "Password did not match.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check input errors before updating the database
|
||||||
|
if(empty($new_password_err) && empty($confirm_password_err)){
|
||||||
|
// Prepare an update statement
|
||||||
|
$sql = "UPDATE users SET password = ? WHERE id = ?";
|
||||||
|
|
||||||
|
if($stmt = mysqli_prepare($link, $sql)){
|
||||||
|
// Bind variables to the prepared statement as parameters
|
||||||
|
mysqli_stmt_bind_param($stmt, "si", $param_password, $param_id);
|
||||||
|
|
||||||
|
// Set parameters
|
||||||
|
$param_password = password_hash($new_password, PASSWORD_DEFAULT);
|
||||||
|
$param_id = $_SESSION["id"];
|
||||||
|
|
||||||
|
// Attempt to execute the prepared statement
|
||||||
|
if(mysqli_stmt_execute($stmt)){
|
||||||
|
// Password updated successfully. Destroy the session, and redirect to login page
|
||||||
|
session_destroy();
|
||||||
|
header("location: login.php");
|
||||||
|
exit();
|
||||||
|
} else{
|
||||||
|
echo "Oops! Something went wrong. Please try again later.";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close statement
|
||||||
|
mysqli_stmt_close($stmt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close connection
|
||||||
|
mysqli_close($link);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Reset Password</title>
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<style>
|
||||||
|
body{ font: 14px sans-serif; }
|
||||||
|
.wrapper{ width: 360px; padding: 20px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
<h2>Reset Password</h2>
|
||||||
|
<p>Please fill out this form to reset your password.</p>
|
||||||
|
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>New Password</label>
|
||||||
|
<input type="password" name="new_password" class="form-control <?php echo (!empty($new_password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $new_password; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $new_password_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Confirm Password</label>
|
||||||
|
<input type="password" name="confirm_password" class="form-control <?php echo (!empty($confirm_password_err)) ? 'is-invalid' : ''; ?>">
|
||||||
|
<span class="invalid-feedback"><?php echo $confirm_password_err; ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="submit" class="btn btn-primary" value="Submit">
|
||||||
|
<a class="btn btn-link ml-2" href="welcome.php">Cancel</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
133
welcome.php
Normal file
133
welcome.php
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
<?php
|
||||||
|
// Initialize the session
|
||||||
|
session_start();
|
||||||
|
$checkURL = "https://ropsten.etherscan.io/tx/". htmlspecialchars($_SESSION["hash"]);
|
||||||
|
|
||||||
|
// Check if the user is logged in, if not then redirect him to login page
|
||||||
|
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
|
||||||
|
header("location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Welcome</title>
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<style>
|
||||||
|
body{ font: 14px sans-serif; text-align: center; }
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1200px) {
|
||||||
|
body {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 4em;
|
||||||
|
margin-left:5% !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
|
||||||
|
}
|
||||||
|
.wrapper {
|
||||||
|
max-width:1200px;
|
||||||
|
}
|
||||||
|
.form-control {
|
||||||
|
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.btn {
|
||||||
|
font-size: 1.1em;
|
||||||
|
height: 2.2em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
||||||
|
.tabel {
|
||||||
|
overflow-x: auto !important;
|
||||||
|
}
|
||||||
|
.ov {
|
||||||
|
overflow-x: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<h1 class="my-5">Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1>
|
||||||
|
<h2 class="my-5">Your role is <b><?php echo htmlspecialchars($_SESSION["role"]); ?></b>.</h2>
|
||||||
|
<h2 class="my-5 ov">Your certificate hash is <?php echo "<a href=\"$checkURL\">";?><b><?php echo htmlspecialchars($_SESSION["hash"]); ?></b></a>.</h2>
|
||||||
|
<h2 class="my-5 ov">Download certificate here : <b><?php echo htmlspecialchars($_SESSION["hash"]); ?></b>.</h2>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if($_SESSION["role"] == "Admin"){
|
||||||
|
|
||||||
|
echo "<div class=\"tabel\"><table class=\"\" style='margin-left: auto; margin-right: auto;'>";
|
||||||
|
echo "<tr><th>Username</th><th>Role</th><th>Certificate hash</th></tr>";
|
||||||
|
|
||||||
|
class TableRows extends RecursiveIteratorIterator {
|
||||||
|
function __construct($it) {
|
||||||
|
parent::__construct($it, self::LEAVES_ONLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
function current() {
|
||||||
|
return "<td style='width: 150px; border: 1px solid black;'>" . parent::current(). "</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function beginChildren() {
|
||||||
|
echo "<tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function endChildren() {
|
||||||
|
echo "</tr>" . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include config file
|
||||||
|
require_once "config.php";
|
||||||
|
|
||||||
|
$servername = DB_SERVER;
|
||||||
|
$dbname = DB_USERNAME;
|
||||||
|
$username = DB_PASSWORD;
|
||||||
|
$password = DB_NAME;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
|
||||||
|
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$stmt = $conn->prepare("SELECT username, role, hash FROM user_pjpb");
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
// set the resulting array to associative
|
||||||
|
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
|
||||||
|
echo $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo "Error: " . $e->getMessage();
|
||||||
|
}
|
||||||
|
$conn = null;
|
||||||
|
echo "</table></div><br><br>";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="reset-password.php" class="btn btn-warning ml-5">Reset Your Password</a><br><br>
|
||||||
|
<a href="logout.php" class="btn btn-danger ml-5">Sign Out of Your Account</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user