Viewing File: /home/rareljzw/public_html/edit-profile.php
<?php
$PageTitle = "Edit Profile";
include_once("./layout/header.php");
include($_SERVER['DOCUMENT_ROOT'] . "/include/notified.php");
if (!$_SESSION['nftwallet']) {
header("location:./login");
die;
}
$stmt = $conn->prepare("SELECT * FROM users WHERE username=:username");
$stmt->execute([
':username' => $_SESSION['nftwallet']
]);
$usersin = $stmt->fetch(PDO::FETCH_ASSOC);
if (isset($_POST['upload_picture'])) {
if (isset($_FILES['image'])) {
$file = $_FILES['image'];
$name = $file['name'];
// Validate file type
$allowed_extensions = array('jpg', 'png', 'jpeg', 'gif');
$file_extension = pathinfo($name, PATHINFO_EXTENSION);
if (!in_array($file_extension, $allowed_extensions)) {
toast_alert('error', 'Invalid file format. Only JPG, PNG, JPEG, and GIF files are allowed.');
} else {
// Move uploaded file to destination
$folder = "assets/front/img/uploads/";
$n = time() . '_' . $usersin['username'] . $name;
$destination = $folder . $n;
if (move_uploaded_file($file['tmp_name'], $destination)) {
$sql = "UPDATE users SET avatar=:image WHERE username =:username";
$stmt = $conn->prepare($sql);
$stmt->execute([
'image' => $n,
':username' => $_SESSION['nftwallet']
]);
// Display success message
toast_alert("success", "Your Image Uploaded Successfully", "Thanks!");
} else {
// Display error message if file upload fails
toast_alert("error", "Failed to upload file.");
}
}
}
}
if (isset($_POST['profile_save'])) {
$acct_fullname = $_POST['acct_fullname'];
$acct_email = $_POST['acct_email'];
$bio = $_POST['bio'];
$twitter = $_POST['twitter'];
$sql = "UPDATE users SET acct_fullname=:acct_fullname, acct_email=:acct_email, bio=:bio, twitter=:twitter WHERE username=:username";
$stmt = $conn->prepare($sql);
$stmt->execute([
'acct_fullname' => $acct_fullname,
'acct_email' => $acct_email,
'bio' => $bio,
'twitter' => $twitter,
':username' => $_SESSION['nftwallet']
]);
// Display success or error message based on the update result
if ($stmt->rowCount() > 0) {
toast_alert('success', 'Account updated successfully', 'Approved');
} else {
toast_alert('error', 'Sorry something went wrong');
}
}
?>
<main class="pt-[5.5rem] lg:pt-24">
<!-- Banner -->
<!--<div class="relative">-->
<!-- <object data="./assets/front/img/uploads/banner.jpg" type="image/png">-->
<!-- <img src="./assets/front/img/uploads/<?= $users['user_cover'] ?>" alt="banner"-->
<!-- class="h-[18.75rem] object-cover" />-->
<!-- </object>-->
<!-- <div class="container relative -translate-y-4">-->
<!-- <div-->
<!-- class="group absolute right-0 bottom-4 flex items-center rounded-lg bg-white py-2 px-4 font-display text-sm hover:bg-accent">-->
<!-- <input type="file" accept="image/*" class="absolute inset-0 cursor-pointer opacity-0" />-->
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"-->
<!-- class="mr-1 h-4 w-4 fill-jacarta-400 group-hover:fill-white">-->
<!-- <path fill="none" d="M0 0h24v24H0z"></path>-->
<!-- <path-->
<!-- d="M15.728 9.686l-1.414-1.414L5 17.586V19h1.414l9.314-9.314zm1.414-1.414l1.414-1.414-1.414-1.414-1.414 1.414 1.414 1.414zM7.242 21H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 21z">-->
<!-- </path>-->
<!-- </svg>-->
<!-- <span class="mt-0.5 block group-hover:text-white">Edit cover photo</span>-->
<!-- </div>-->
<!-- </div>-->
<!--</div>-->
<!-- end banner -->
<!-- Edit Profile -->
<section class="relative py-16 dark:bg-jacarta-800">
<picture class="pointer-events-none absolute inset-0 -z-10 dark:hidden">
<img src="./assets/front/img/gradient_light.jpg" alt="gradient" class="h-full w-full" />
</picture>
<div class="container">
<div class="mx-auto max-w-[48.125rem] md:flex">
<!-- Form -->
<div class="mb-12 md:w-1/2 md:pr-8">
<form method="POST">
<div class="mb-6">
<label for="profile-username"
class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Full Name<span
class="text-red">*</span></label>
<input type="text" id="profile-username"
class="w-full rounded-lg border-jacarta-100 py-3 hover:ring-2 hover:ring-accent/10 focus:ring-accent dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-white dark:placeholder:text-jacarta-300"
placeholder="Enter Full Name" value="<?= $usersin['acct_fullname'] ?>" required name="acct_fullname" />
</div>
<div class="mb-6">
<label for="profile-username"
class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Username<span
class="text-red">*</span></label>
<input type="text" id="profile-username"
class="w-full rounded-lg border-jacarta-100 py-3 hover:ring-2 hover:ring-accent/10 focus:ring-accent dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-white dark:placeholder:text-jacarta-300"
placeholder="Enter username" value="<?= $usersin['username'] ?>" disabled />
</div>
<div class="mb-6">
<label for="profile-bio"
class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Bio<span
class="text-red">*</span></label>
<textarea id="profile-bio"
class="w-full rounded-lg border-jacarta-100 py-3 hover:ring-2 hover:ring-accent/10 focus:ring-accent dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-white dark:placeholder:text-jacarta-300"
value="<?= $usersin['bio'] ?>" placeholder="Tell the world your story!" name="bio"></textarea>
</div>
<div class="mb-6">
<label for="profile-email"
class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Email address<span
class="text-red">*</span></label>
<input type="email" id="profile-email"
class="w-full rounded-lg border-jacarta-100 py-3 hover:ring-2 hover:ring-accent/10 focus:ring-accent dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-white dark:placeholder:text-jacarta-300"
placeholder="Enter email" value="<?= $usersin['acct_email'] ?>" name="acct_email" required />
</div>
<div class="mb-6">
<label for="profile-twitter"
class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Links<span
class="text-red">*</span></label>
<div class="relative">
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter"
class="pointer-events-none absolute top-1/2 left-4 h-4 w-4 -translate-y-1/2 fill-jacarta-300 dark:fill-jacarta-400"
role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path
d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z">
</path>
</svg>
<input type="text" id="profile-twitter"
class="w-full rounded-t-lg border-jacarta-100 py-3 pl-10 hover:ring-2 hover:ring-accent/10 focus:ring-inset focus:ring-accent dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-white dark:placeholder:text-jacarta-300"
placeholder="@twittername" name="twitter" value="<?= $usersin['twitter'] ?>" />
</div>
</div>
<div class="mb-6">
<label class="mb-1 block font-display text-sm text-jacarta-700 dark:text-white">Wallet
Address</label>
<button
class="js-copy-clipboard flex w-full select-none items-center rounded-lg border border-jacarta-100 bg-white py-3 px-4 hover:bg-jacarta-50 dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-jacarta-300"
data-tippy-content="Copy">
<span><?= $usersin['address']?></span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"
class="ml-auto mb-px h-4 w-4 fill-jacarta-500 dark:fill-jacarta-300">
<path fill="none" d="M0 0h24v24H0z"></path>
<path
d="M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zM4.003 9L4 20h11V9H4.003z">
</path>
</svg>
</button>
</div>
<button name="profile_save" type="submit"
class="rounded-full bg-accent py-3 px-8 text-center font-semibold text-white shadow-accent-volume transition-all hover:bg-accent-dark">
Update Profile
</button>
</form>
</div>
<!-- Avatar -->
<div class="flex space-x-5 md:w-1/2 md:pl-8">
<form class="shrink-0" method="POST" id="general-info" enctype="multipart/form-data">
<figure class="relative inline-block">
<img src="./assets/front/img/uploads/<?= $usersin['avatar'] ?>"
alt="collection avatar" width="150"
class="rounded-xl border-[5px] border-white dark:border-jacarta-600" />
<div
class="group absolute -right-3 -bottom-2 h-8 w-8 overflow-hidden rounded-full border border-jacarta-100 bg-white text-center hover:border-transparent hover:bg-accent">
<input type="file" accept="image/*"
class="absolute top-0 left-0 w-full cursor-pointer opacity-0" id="input-file-max-fs" name="image" data-max-file-size="2M" />
<div class="flex h-full items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"
class="h-4 w-4 fill-jacarta-400 group-hover:fill-white">
<path fill="none" d="M0 0h24v24H0z" />
<path
d="M15.728 9.686l-1.414-1.414L5 17.586V19h1.414l9.314-9.314zm1.414-1.414l1.414-1.414-1.414-1.414-1.414 1.414 1.414 1.414zM7.242 21H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 21z" />
</svg>
</div>
</div>
<br>
<input type="submit" name="upload_picture" placeholder="upload now">
</figure>
</form>
<div class="mt-4">
<span class="mb-3 block font-display text-sm text-jacarta-700 dark:text-white">Profile
Image</span>
<p class="text-sm leading-normal dark:text-jacarta-300">
We recommend an image of at least 300x300. Gifs work too. Max 5mb.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- end edit profile -->
<?php
include_once("./layout/footer.php");
?>
Back to Directory
File Manager
<