OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
3-31-025chanakya
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2025 11:18:49 AM
rwxr-xr-x
📄
.htaccess
860 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
.vscode
-
03/26/2025 03:47:57 AM
rwxr-xr-x
📁
CreateLeadPage
-
03/26/2025 04:16:47 AM
rwxr-xr-x
📄
ImageMagick-7.1.1-45-Q16-HDRI-x64-dll.exe
22.2 MB
03/26/2025 03:47:54 AM
rw-r--r--
📁
Xpress
-
03/26/2025 04:21:24 AM
rwxr-xr-x
📄
XpressPage.php
47.13 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
about.html
3.26 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
account.php
47.77 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
activate.php
2.19 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
add_channel.php
9.7 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
add_to_channel.php
980 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
admin
-
03/26/2025 04:16:40 AM
rwxr-xr-x
📄
analytics.php
37.71 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
assets
-
03/26/2025 04:16:41 AM
rwxr-xr-x
📁
audio
-
03/26/2025 03:48:03 AM
rwxr-xr-x
📄
businessLp.php
46.33 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
bussLp.php
57.87 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
card-news.php
6.2 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
channel.php
36.21 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
chattest.php
8.66 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
clients
-
03/26/2025 03:48:03 AM
rwxr-xr-x
📄
collections.php
94.62 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
comments.php
1.67 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
composer.json
65 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📄
composer.lock
4.03 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
contact.html
3.01 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
cookie.php
750 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📄
copytest.html
4.04 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
creamAdmin
-
03/26/2025 04:07:42 AM
rwxr-xr-x
📄
cream_dashboard.php
25.87 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
creamapi
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
create.php
42.93 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
created_magazine.html
11.96 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
dashboard.php
55.52 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
data
-
03/26/2025 04:16:48 AM
rwxr-xr-x
📄
down.html
829 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
education-podcasts
-
03/31/2025 06:36:42 AM
rwxr-xr-x
📁
featured_channels
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
featured_channels.php
32.48 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
featured_topics.php
26.59 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
fetch_articles.php
1.83 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
fetch_liked_users.php
1.55 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
filter.php
4.91 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
follow_action.php
1.75 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
follow_dash.php
33.76 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
form-builder
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
function.php
20.61 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
genai
-
03/26/2025 04:20:06 AM
rwxr-xr-x
📄
generated_article.php
11.86 KB
03/26/2025 03:47:47 AM
rw-r--r--
📄
get_recent_items.php
1.37 KB
03/26/2025 03:47:47 AM
rw-r--r--
📄
handle_channel.php
856 bytes
03/26/2025 03:47:47 AM
rw-r--r--
📁
hindiConverter
-
03/26/2025 04:15:50 AM
rwxr-xr-x
📄
homePin.php
68.38 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
hps
-
03/26/2025 03:48:05 AM
rwxr-xr-x
📄
impmy_collection.php
124.17 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
inc
-
03/26/2025 04:15:50 AM
rwxr-xr-x
📄
index.php
30.55 KB
03/26/2025 03:47:48 AM
rw-r--r--
📄
index1.php
61.34 KB
03/26/2025 03:47:50 AM
rw-r--r--
📄
influencer.php
11.72 KB
03/26/2025 03:47:54 AM
rw-r--r--
📁
interface
-
03/26/2025 03:48:05 AM
rwxr-xr-x
📁
kannada
-
03/26/2025 04:20:06 AM
rwxr-xr-x
📄
knobly_logo.png
9.45 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
landing_page.php
17.27 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
landing_signin.php
5.11 KB
03/26/2025 03:47:54 AM
rw-r--r--
📁
leadpage
-
03/26/2025 04:15:53 AM
rwxr-xr-x
📄
link.php
5.63 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
logInCheck.php
4.41 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
loggedInCheck.php
1.15 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
logo (1).svg
814 bytes
03/26/2025 03:47:55 AM
rw-r--r--
📄
logout.php
503 bytes
03/26/2025 03:47:55 AM
rw-r--r--
📄
magazine.html
4.46 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
magazine.php
23.57 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
more.php
9.21 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
my_collection.php
153.03 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
my_settings.php
17.44 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
navbar.php
3.36 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
new-page.php
10.46 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
newEditor.php
17.04 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
newsletter.php
24.31 KB
03/26/2025 03:47:55 AM
rw-r--r--
📁
pageLanding
-
03/26/2025 04:20:07 AM
rwxr-xr-x
📁
pages
-
03/26/2025 04:15:53 AM
rwxr-xr-x
📄
payment.php
29.86 KB
03/26/2025 03:47:55 AM
rw-r--r--
📁
pdf
-
03/26/2025 03:48:06 AM
rwxr-xr-x
📄
pdftk_server-2.02-win-setup.exe
2.91 MB
03/26/2025 03:47:56 AM
rw-r--r--
📄
post-details.php
37.75 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
premium.php
21.79 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
privacy.html
12.1 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
process
-
03/26/2025 03:48:11 AM
rwxr-xr-x
📄
process-plan.php
1.44 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
process.php
1.52 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
process_data.php
5.02 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile.php
37.8 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile_pic_upload.php
4.83 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile_test.php
19.78 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
reels
-
03/26/2025 04:20:08 AM
rwxr-xr-x
📄
refund.html
9.04 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
replyPost.php
3.93 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
report
-
03/26/2025 03:48:11 AM
rwxr-xr-x
📄
request_article.php
22.76 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
reset.html
4.7 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
save_profile.php
2.78 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
saved.php
34.28 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
saved_posts.php
49.25 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
search_bar.php
16.95 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
sendy
-
03/26/2025 04:21:20 AM
rwxr-xr-x
📄
settings.php
81.93 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
sharemarket.php
3.88 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
showcase.php
10.34 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
signInProcess.php
13.83 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
signInProcess_backup.php
11.18 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
social_media
-
03/26/2025 04:16:12 AM
rwxr-xr-x
📄
start.html
3.99 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
store_articles.php
1.04 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
stream.php
62.31 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streamPush.php
29.82 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streamb.php
40.75 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streambb.php
47.34 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
texttovoice
-
03/26/2025 03:48:13 AM
rwxr-xr-x
📁
thumbsUp
-
03/26/2025 03:48:13 AM
rwxr-xr-x
📄
toggle_channel.php
2.28 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
udupi_sign_up.php
34.5 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
uploads
-
03/26/2025 04:06:46 AM
rwxr-xr-x
📄
usage.html
37.76 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
userActivity.php
9.79 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
vendor
-
03/26/2025 04:20:23 AM
rwxr-xr-x
📄
verify.php
744 bytes
03/26/2025 03:47:57 AM
rw-r--r--
📄
view.php
13.36 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
view_newsletter.php
1.58 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
xpress_landing_page.php
78.63 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
xpress_landingpage.html
11.15 KB
03/26/2025 03:47:57 AM
rw-r--r--
Editing: account.php
Close
<!doctype html> <? include './assets/php/db_connect.php'; include './assets/php/config.php'; include './assets/php/validate.logged.php'; include './assets/php/function.php'; function getPlanEndInDays($endDate) { $currentDate = new DateTime(); $endDateObj = new DateTime($endDate); $diff = $currentDate->diff($endDateObj); $daysLeft = $diff->days; if ($currentDate > $endDateObj) { return "The plan has already ended."; } return $daysLeft; } function show_pro_details() { global $creamdb, $gUserId; $end_time_left = ''; // Prepare the SQL query $sql = "SELECT * FROM cream_subscription WHERE userId = ? ORDER BY end_date DESC"; if ($stmt = $creamdb->prepare($sql)) { $stmt->bind_param("i", $gUserId); if ($stmt->execute()) { $result = $stmt->get_result(); if ($result->num_rows > 0) { ?> <table> <thead> <tr> <th>Plan</th> <th>Plan Type</th> <th>Started On</th> <th>Ended On</th> </tr> </thead> <tbody> <?php while ($row = $result->fetch_assoc()) { $end_time_left = ($end_time_left == '') ? $row['end_date'] : $end_time_left; ?> <tr> <td><?= $row['plan'] ?></td> <td><?= $row['plan_type'] ?></td> <td><?= date('d M, Y h:i a', strtotime($row['start_date'])) ?></td> <td><?= date('d M, Y h:i a', strtotime($row['end_date'])) ?></td> </tr> <?php } ?> </tbody> </table> <p><strong>Your Plan Ends in :</strong> <?= getPlanEndInDays($end_time_left) ?> Days!!</p> <?php } } } } $specialIds = [370, 415]; $act = ''; if (!empty($_POST)) $act = isset($_POST["act"]) ? $_POST["act"] : ''; // Check if already exists on update if ($act == 'chkExist') { $chkEmail = isset($_POST['email']) ? $_POST['email'] : ''; $sql = "SELECT id FROM user WHERE email='$chkEmail' AND id<>$gUserId"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows == 0) { echo 'OK'; } } // Update Profile if ($act == 'updateProfile') { $userName = isset($_POST['userName']) ? $_POST['userName'] : ''; $userEmail = isset($_POST['userEmail']) ? $_POST['userEmail'] : ''; $userCompany = isset($_POST['userCompany']) ? $_POST['userCompany'] : ''; $userCategoryId = isset($_POST['userCategoryId']) ? $_POST['userCategoryId'] : ''; $userWebsite = isset($_POST['userWebsite']) ? $_POST['userWebsite'] : ''; if ($userName != '' && $userEmail != '') { $sql = "UPDATE user SET full_name='$userName',email='$userEmail',company='$userCompany',category_id=$userCategoryId,website='$userWebsite',date_modified=Now() WHERE id=$gUserId"; mysqli_query($db, $sql); echo "OK"; } } // Update Password if ($act == 'updatePass') { $userPassCurrent = isset($_POST['userPassCurrent']) ? $_POST['userPassCurrent'] : ''; $userPassNew = isset($_POST['userPassNew']) ? $_POST['userPassNew'] : ''; if ($userPassCurrent != '' && $userPassNew != '') { $sql = "SELECT id FROM user WHERE id=$gUserId AND password='$userPassCurrent'"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows == 0) { echo "IncorrectPassword"; die(); } $sql = "UPDATE user SET password='$userPassNew',date_modified=Now() WHERE id=$gUserId"; mysqli_query($db, $sql); echo "OK"; } } // Default if ($act == '') { ?> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Knobly Cream: Create • Reach • Measure</title> <!-- jQuery --> <link rel="stylesheet" href="assets/css/all.min.css"> <!-- Animate.css (Latest Version) --> <link rel="stylesheet" href="assets/css/animate.min.css" /> <!-- Custom Styles --> <link rel="stylesheet" href="/assets/old/style.css" /> <link rel="stylesheet" href="/assets/css/styles.css" /> <!-- Favicon --> <link rel="icon" type="image/x-icon" href="/img/logo.ico"> <!-- Bootstrap 4.5.2 (Update to 5 if needed) --> <link href="assets/css/bootstrap.min.4.5.css" rel="stylesheet"> <!-- Optional: Latest Bootstrap 5.3.0 (if upgrading to Bootstrap 5) --> <!-- <link href="assets/css/bootstrap.min.css" rel="stylesheet"> --> <!-- Cropper CSS --> <link href="assets/css/cropper.min.css" rel="stylesheet"> <style> body { color: #fff; font-family: Arial, sans-serif; } .profile-pic { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; } .btn-custom { background-color: #db5919; color: #fff; border: 1px solid #6c757d; padding: 5px 10px; border-radius: 5px; cursor: pointer; transition: background-color 0.3sease; margin-left: 15px; } .btn-custom:hover { background-color: #db5919; /* Darker shade for hover effect */ padding: 10px 20px; border-radius: 5px; color: white; } .btn-primary { padding: 10px 20px; border-radius: 5px; } #imageContainer { width: 100% !important; } #uploadForm { color: #fff; } .modal-title { color: #fff; } #uploadForm { color: #000; } .modal-title { color: #000; } .modal-content { background-color: #dfe3ee !important; } .form-control { background-color: #fff !important; color: #000 !important; } .btn-close { color: #000 !important; } /* Set fixed size for the cropper container */ .cropper-container { margin: 0 auto; /* Center the container if necessary */ position: relative; /* Ensure proper positioning of the image */ } /* Optional: Style the cropper's background (use for debugging if needed) */ .cropper-bg { background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */ } </style> <style> #zf-widget-root-id { padding: 20px; } .btn-spacing { margin-right: 10px; /* Adjust as needed */ } .newsroll-dropdown { border: none; outline: none; position: relative; display: inline-block; /* display: flex; */ align-items: center; padding-left: 8px; /* border: none; */ padding-bottom: 8px; } .newsroll-dropbtn { border: none; color: rgba(255, 255, 255, 0.5); background-color: #212529; } .newsroll-dropbtn:focus { border: none; outline: none; } .newsroll-dropdown-content { display: none; outline: none; position: relative; background-color: #212529; min-width: 160px; /* box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); */ /* z-index: 1; */ } .newsroll-dropdown-content a { color: white; padding: 12px 16px; text-decoration: none; display: block; } .show { display: block; } .tab-container { overflow-x: auto; white-space: nowrap; padding: 10px 0; /* Add some padding for spacing */ border-radius: 5px; /* Optional: rounded corners for the container */ } .nav-tabs { display: inline-flex; flex-wrap: nowrap; } .nav-btn { display: flex; align-items: center; justify-content: center; padding: 10px 20px; /* Padding for tabs */ font-size: 14px; font-weight: 500; color: #333; /* Default text color */ background-color: #e0e0e0; /* Background color for inactive tabs */ border: 1px solid #ccc; /* Button border */ border-radius: 5px; /* Rounded corners for inactive tabs */ margin-right: 5px; /* Space between tabs */ transition: background-color 0.3s ease, transform 0.3s ease; /* Smooth transition */ } /* Active Tab Styling */ .nav-btn.active { border-bottom: 3px solid #db5919; /* Active tab underline color */ background-color: #007bff; /* Active tab background color */ color: white; /* Active tab text color */ } /* Hover Effect for Inactive Tabs */ .nav-btn:hover { background-color: #007bff; /* Background color on hover */ color: white; /* Text color on hover */ transform: scale(1.05); /* Slightly enlarge on hover */ } .nav-btn { color: #ebedf2; /* Light text color in dark mode */ background-color: #444; /* Dark background for inactive tabs */ border-color: #666; /* Darker border color */ } .nav-btn.active { background-color: #db5919; /* Dark mode active tab background color */ color: white; /* White text on active tab in dark mode */ border-bottom: 3px solid #db5919; /* Active tab border color in dark mode */ } /* Apply scrollable tabs for smaller screens */ @media (max-width: 768px) { /* Adjust the max-width as needed for your breakpoint */ .tab-container { overflow-x: auto; display: block; } .nav-tabs { flex-wrap: nowrap; -webkit-overflow-scrolling: touch; /* Smooth scrolling for iOS */ scroll-behavior: smooth; /* Smooth scrolling for other browsers */ } .nav-item { display: inline-block; } } /* General adjustments for responsiveness */ .main-content { margin-left: 10px; margin-right: 10px; margin-bottom: 50px; } /* Tab container adjustments for smaller screens */ @media (max-width: 768px) { .tab-container { overflow-x: auto; white-space: nowrap; display: flex; flex-wrap: nowrap; padding: 5px 0; /* Reduced padding for smaller screens */ } .nav-tabs { flex-wrap: nowrap; -webkit-overflow-scrolling: touch; /* Smooth scrolling for iOS */ scroll-behavior: smooth; /* Smooth scrolling for other browsers */ } .nav-btn { padding: 8px 10px; /* Smaller padding for mobile */ font-size: 12px; /* Adjust font size for readability */ margin-right: 3px; /* Reduce spacing between tabs */ } .nav-btn.active { border-bottom: 2px solid #db5919; /* Thinner underline for active tabs */ } } /* Responsive dropdown adjustments */ @media (max-width: 768px) { .newsroll-dropdown { width: 100%; /* Make dropdown full width for smaller screens */ text-align: center; } .main-content { /* padding-top: 30px; */ } .newsroll-dropdown-content { min-width: 100%; /* Ensure dropdown items fit the screen width */ border-radius: 0; /* Remove rounded corners for a cleaner look */ } .newsroll-dropbtn { width: 100%; padding: 10px 0; /* Adjust padding for better tap targets */ } } /* Responsive table adjustments */ @media (max-width: 768px) { .table-bordered, .table-striped { font-size: 12px; /* Smaller text for tables */ overflow-x: auto; /* Enable horizontal scrolling for wide tables */ } } /* Button adjustments for smaller screens */ @media (max-width: 768px) { .btn-spacing { margin-right: 5px; /* Reduce spacing between buttons */ font-size: 12px; /* Smaller font for buttons */ } .btn-primary { padding: 8px 12px; /* Smaller padding for mobile */ } } @media (min-width: 1440px) { .main-content { margin-left: 220px; /* Increased margin for large laptop/desktop screens */ margin-right: 220px; } } </style> <style> .zf-widget-root-id { display: flex; justify-content: space-between; /* Add space between the cards */ gap: 20px; } .card-container { display: flex; gap: 20px; flex-wrap: wrap; justify-content: space-between; width: 100%; } .card { width: 48%; /* Ensures both cards fit side by side */ background-color: #fff; border: 1px solid #e3e3e3; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 20px; box-sizing: border-box; margin-bottom: 20px; /* Adds space at the bottom */ } .plan-dropdown { width: 100px; margin-bottom: 20px; padding: 5px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; } .card-content { text-align: center; } .plan-title { font-size: 20px; color: #007bff; margin-bottom: 10px; } .plan-price { font-size: 36px; font-weight: bold; color: #333; margin: 0; } .plan-subtext { font-size: 14px; color: #777; margin-top: 5px; margin-bottom: 20px; } .plan-description { font-size: 14px; color: #333; text-align: left; margin-bottom: 20px; } .checkmark { color: #ff9900; font-weight: bold; } .upgrade-button { width: 100%; padding: 10px 0; background-color: #007bff; color: #fff; border: none; border-radius: 4px; font-size: 16px; cursor: pointer; transition: background-color 0.3s; } .upgrade-button:hover { background-color: #0056b3; } /* Responsive Styles */ @media (max-width: 768px) { .card { width: 100%; /* On smaller screens, make each card take full width */ } .zf-widget-root-id { flex-direction: column; /* Stack cards vertically on smaller screens */ } } #userBio { height: 80px; } @media screen and (min-width:768px) { .main-content { /* padding-top: 90px; */ } } </style> <style> /* General Table Styles */ table { width: 100%; border-collapse: collapse; margin: 20px 0; font-family: Arial, sans-serif; } th, td { padding: 12px 15px; text-align: left; border: 1px solid #ddd; } th { background-color: #db5919; color: white; font-weight: bold; } tr:nth-child(even) { background-color: #f2f2f2; } tr:hover { background-color: #ddd; } td { font-size: 14px; } tr { color: #000; } </style> <!-- jQuery (v3.6.0) --> <script src="assets/js/jquery-3.6.0.min.js"></script> <!-- Chart.js (Latest Version) --> <script src="assets/js/Chart.min.js" crossorigin="anonymous"></script> <!-- TinyMCE (Latest Version) --> <script src="assets/js/tinymce.min.js" referrerpolicy="origin"></script> <!-- ZOHO Widget Script --> <script src="assets/js/zf-widget.js"></script> <!-- Custom Scripts --> <script src="/assets/js/common.js"></script> <!-- Bootstrap Bundle with Popper.js (for Bootstrap JS functionality) --> <script src="assets/js/bootstrap.bundle.min.4.5.js"></script> <script src="assets/js/bootstrap.min.4.5.js"></script> <!-- Include Cropper.js JS --> <script src="assets/js/cropper.min.js"></script> <script> $(document).ready(function() { let cropper; // Handle file input change $("#fileInput").on("change", function(event) { const file = event.target.files[0]; if (file) { // Show image container and crop button (we no longer need the crop button) $("#imageContainer").show(); const reader = new FileReader(); reader.onload = function(e) { // Set the image source for preview $("#imagePreview").attr("src", e.target.result); // Use jQuery to get the image element const $image = $("#imagePreview")[0]; // jQuery selector with [0] to get the DOM element // Set the width and height for the image dynamically const desiredWidth = 600; // Set your desired width here const desiredHeight = 400; // Set your desired height here // Set the image's width and height $image.width = desiredWidth; $image.height = desiredHeight; // Initialize the Cropper instance once the image is loaded if (cropper) { cropper.destroy(); // Destroy the previous instance if any } // Initialize the Cropper with the desired settings (allow zooming out) cropper = new Cropper($image, { aspectRatio: 1, // Aspect ratio (1:1 for square crop) viewMode: 2, // Ensures image is contained within the canvas (image scaling to fit) autoCropArea: 0.8, // Area to crop initially movable: true, // Allow image move zoomable: true, // Allow zooming (both in and out) rotatable: true, // Allow rotation scalable: true, // Allow scaling cropBoxResizable: true, // Allow resizing the crop box (this will resize the image area) minContainerWidth: 300, // Minimum width of the container minContainerHeight: 300, // Minimum height of the container minZoom: 0.5, // Allow zooming out (min zoom set to 0.5, allowing zoom-out) maxZoom: 3, // Optional: Limit zoom-in to 3x the image size (default is 1) ready: function() { // Set initial size of crop box, but the crop box will resize const cropBoxData = cropper.getCropBoxData(); cropper.setCropBoxData({ left: cropBoxData.left, top: cropBoxData.top, width: 300, // Set max crop box size height: 300 // Set max crop box size }); }, // Allow the crop box resizing to a max of 300x300px cropBoxMinWidth: 50, // Min size of the crop box cropBoxMinHeight: 50, // Min size of the crop box cropBoxMaxWidth: 300, // Max size of the crop box cropBoxMaxHeight: 300, // Max size of the crop box crop: function(event) { // This function will no longer be used for cropping, but it can be left empty. } }); }; reader.readAsDataURL(file); } }); // Handle saving profile changes directly when the "Save Profile" button is clicked $("#saveProfileBtn").on("click", function() { if (cropper) { // Get the current state of the image (zoomed, moved, resized) const canvas = cropper.getCroppedCanvas(); // This is the current image state // Convert the canvas to base64 const imageData = canvas.toDataURL("image/png"); // Add the base64 image data to the form as a hidden input field $("#uploadForm").append(`<input type="hidden" name="image_state" value="${imageData}" />`); // Now submit the form to save the profile const formData = new FormData($("#uploadForm")[0]); // Send the data to PHP (via AJAX) $.ajax({ url: "save_profile.php", // PHP script to handle the save type: "POST", data: formData, processData: false, contentType: false, success: function(response) { if (response.status === 'success') { alert(response.message); // Optionally, update the image preview with the new image path $("#profileImagePreview").attr("src", response.image_path); // Close the modal $('#editProfileModal').modal('hide'); window.location.reload(); } else { alert(response.message); // Display error message } }, error: function() { alert("An error occurred while saving your profile."); } }); } }); }); </script> <!-- <script type="text/javascript"> $(function() { var pricingTableComponentOptions = { id: 'zf-widget-root-id', product_id: '2-a22c0be31501979fdf6d95705ea43113bde88338aa57ecb5f61153ce5d3090c3f48d7e9af6c8ae9e58bcad6fd428a6fde667b7eb5ddc5b2a318fde6c950d2d25', template: 'combo_pro', most_popular_plan: '', is_group_by_frequency: true, group_options: [{ frequency: 'Monthly', frequency_recurrence_value: '1_months', most_popular_plan: '', plans: [{ plan_code: 'M' }, ] }, { frequency: 'Yearly', frequency_recurrence_value: '1_years', most_popular_plan: '', plans: [{ plan_code: 'A' }, ] }, ], plans: [], theme: { color: '#f58020', theme_color_light: '' }, button_text: 'Upgrade to Pro Plan', product_url: 'https://subscriptions.zoho.com', price_caption: '', language_code: 'en', open_inSameTab: false }; ZFWidget.init('zf-pricing-table', pricingTableComponentOptions); }); </script> --> <style> main { display: flex; justify-content: center; } .go-back-bar { left: 80px !important; margin-top: 100px; } label { color: #000 } #panelStatus { margin-bottom: 140px; } </style> <style> .sideWithMainContainer { display: flex; flex-direction: row; gap: 10px; overflow-x: hidden; } .sideMaincontent { overflow-y: scroll; } @media (min-width: 768px) { .col-md-2 { padding: 0px !important; } } @media (max-width: 768px) { .col-md-2 { display: none !important; } } </style> </head> <body> <!-- Edit Profile Modal --> <div class="modal fade" id="editProfileModal" tabindex="-1" role="dialog" aria-labelledby="editProfileModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content bg-dark text-white"> <div class="modal-header"> <h5 class="modal-title" id="editProfileModalLabel">Edit Profile</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form id="uploadForm" enctype="multipart/form-data"> <!-- Profile Picture Upload --> <div class="form-group"> <label for="fileInput" class="form-label">Upload Profile Picture</label> <input type="file" name="profile_pic" accept="image/*" id="fileInput" class="form-control" required /> </div> <!-- Image Preview and Cropper --> <div id="imageContainer" style="display:none;"> <img id="imagePreview" src="" alt="Image Preview" style="max-width: 100%;" /> </div> <!-- Crop Button --> <button type="button" id="cropBtn" class="btn btn-primary" style="display:none;">Crop and Save</button> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> <button type="button" class="btn btn-primary" id="saveProfileBtn">Save Changes</button> </div> </div> </div> </div> <? include 'assets/php/social_navbar.php'; ?> <div class="sideWithMainContainer"> <div class="col-md-2"> <? include 'assets/php/sidebar.php' ?> </div> <main class="col-sm-12 col-md-10 sideMaincontent"> <div class="main-content col-md-9"> <? $sql = "SELECT * FROM user WHERE id=$gUserId"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows > 0) { $row = mysqli_fetch_assoc($result); $userName = $row['full_name']; $userCompany = $row['company']; $userEmail = $row['email']; $userWebsite = $row['website']; $userCategoryId = $row['category_id']; $userBio = $row['bio']; ?> <ol class="breadcrumb my-3"> <li class="breadcrumb-item"> <h4 class="m-0">My Account</h4> </li> </ol> <div class="row mb-4"> <div class="col"> <ul class="nav nav-tabs mb-4"> <li class="nav-item"><a class="nav-btn active" data-toggle="tab" href="#profile" role="tab" onclick="$('#panelStatus').html('')">Profile</a></li> <li class="nav-item"><a class="nav-btn" data-toggle="tab" href="#password" role="tab" onclick="$('#panelStatus').html('')">Password</a></li> <!-- <li class="nav-item"><a class="nav-btn" data-toggle="tab" href="#plan" role="tab" onclick="$('#panelStatus').html('')">Plan</a></li> --> <? if ($gUserId == 23) { ?> <li class="nav-item"><a class="nav-btn" href="creamAdmin/verification.php" target="_blank">Admin</a></li> <? } ?> </ul> <div class="tab-content m-3"> <div class="tab-pane fade show active" id="profile" role="tabpanel"> <div class="form-group row"> <div class="col-sm-12 col-md-6"> <img id="profilePic" src="<?= viewProfilePic($db, $gUserId) ?>" alt="Profile Picture" class="profile-pic"> <button class="btn btn-custom flex-fill" data-toggle="modal" data-target="#editProfileModal">Edit</button> </div> </div> <? if ($gUserSubdomain <> '') { $landingPageURL = "https://$gUserSubdomain.knoblycream.com/"; } else { // $landingPageURL = "https://www.knoblycream.com/$gUserId/showcase"; $landingPageURL = "$gUserId/showcase"; } ?> <div class="form-group row"> <label class="col-sm-2 col-form-label">Showcase Page</label> <div class="col-sm-12 col-md-6 mt-2"><a href="<?= $landingPageURL ?>" target="_blank"><?= $landingPageURL ?></a></div> </div> <div class="form-group row"> <label for="inputPassword" class="col-sm-2 col-form-label">Full Name</label> <div class="col-sm-12 col-md-6"> <input type="text" class="form-control" id="userName" name="userName" value="<?= $userName ?>" maxlength="100" /> </div> </div> <div class="form-group row"> <label for="userEmail" class="col-sm-2 col-form-label">Email</label> <div class="col-sm-12 col-md-6"> <input type="email" class="form-control" id="userEmail" name="userEmail" value="<?= $userEmail ?>" maxlength="100" readonly /> </div> </div> <div class="form-group row"> <label for="userCompany" class="col-sm-2 col-form-label">Company</label> <div class="col-sm-12 col-md-6"> <input type="text" class="form-control" id="userCompany" name="userCompany" value="<?= $userCompany ?>" maxlength="100" /> </div> </div> <div class="form-group row"> <label for="userCategoryId" class="col-sm-2 col-form-label">Business Type</label> <div class="col-sm-12 col-md-6"> <select id="userCategoryId" name="userCategoryId" class="form-control"> <option value="0">--[select]-- <? $sql = "SELECT id,category FROM category ORDER BY category"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows > 0) { for ($i = 0; $i < $numRows; $i++) { $row = mysqli_fetch_array($result); $tmpCategoryId = $row['id']; $tmpCategoryName = $row['category']; if ($userCategoryId == $tmpCategoryId) { echo ' <option value="' . $tmpCategoryId . '" SELECTED>' . $tmpCategoryName; } else { echo ' <option value="' . $tmpCategoryId . '">' . $tmpCategoryName; } } } ?> <option value="0">Others </select> </div> </div> <div class="form-group row"> <label for="userWebsite" class="col-sm-2 col-form-label">Website</label> <div class="col-sm-12 col-md-6"> <input type="text" class="form-control" id="userWebsite" name="userWebsite" value="<?= $userWebsite ?>" maxlength="100" /> <small class="form-text text-muted">Please enter the URL with http:// or https://</small> </div> </div> <div class="form-group row"> <label for="userBio" class="col-sm-2 col-form-label">Bio</label> <div class="col-sm-12 col-md-6"> <textarea type="text" class="form-control" id="userBio" name="userBio" value="<?= $userBio ?>" maxlength="100"><?= $userBio ?></textarea> </div> </div> <div class="form-group row mt-4"> <label class="col-sm-2 col-form-label"></label> <div class="col-sm-8 d-flex"> <button class="btn btn-primary btn-spacing" onclick="return chkUpdateProfile()">Update Profile</button> <!-- <button class="btn btn-primary" onclick="window.location.href='my_settings.php';">Edit Profile Image</button> --> </div> </div> </div> <div class="tab-pane fade" id="password" role="tabpanel"> <div class="form-group row"> <label for="userPassCurrent" class="col-sm-2 col-form-label">Current password</label> <div class="col-sm-12 col-md-3"> <input type="password" class="form-control" id="userPassCurrent" name="userPassCurrent" maxlength="20" /> </div> </div> <div class="form-group row"> <label for="userPassNew1" class="col-sm-2 col-form-label">New password</label> <div class="col-sm-12 col-md-3"> <input type="password" class="form-control" id="userPassNew1" name="userPassNew1" maxlength="20" /> </div> </div> <div class="form-group row"> <label for="userPassNew2" class="col-sm-2 col-form-label">Retype Password</label> <div class="col-sm-12 col-md-3"> <input type="password" class="form-control" id="userPassNew2" name="userPassNew2" maxlength="20" /> </div> </div> <div class="form-group row mt-4"> <label class="col-sm-2 col-form-label"></label> <div class="col-sm-12 col-md-3"> <button class="btn btn-primary" onclick="return chkUpdatePassword()">Update Password</button> </div> </div> </div> <div class="tab-pane fade" id="plan" role="tabpanel"> <div class="col-sm-12 col-md-6 mt-2"> <? if ($gUserPlan == 1) { ?> Pro <? show_pro_details() ?> <? } else { ?> Free <div class="zf-widget-root-id"> <!-- Monthly Plan Card --> <div class="card"> <div class="card-content"> <h2 class="plan-title">Monthly</h2> <p class="plan-price">₹2000</p> <p class="plan-subtext">Billed Monthly</p> <p class="plan-description"> <span class="checkmark">✔</span> This is a Pay as Go option and you will get access to complete Pro features </p> <!-- Monthly Plan Form --> <form action="payment.php" method="POST" target="_blank"> <input type="hidden" name="plan" value="Monthly Subscription"> <input type="hidden" name="amount" value="2000"> <button type="submit" class="upgrade-button">Upgrade to Pro Plan</button> </form> </div> </div> <!-- Annual Plan Card --> <div class="card"> <div class="card-content"> <h2 class="plan-title">Annual</h2> <p class="plan-price">₹18000</p> <p class="plan-subtext">Billed Annually</p> <p class="plan-description"> <span class="checkmark">✔</span> Peace of Mind plan with dollops of savings </p> <!-- Annual Plan Form --> <form action="payment.php" method="POST" target="_blank"> <input type="hidden" name="plan" value="Annual Subscription"> <input type="hidden" name="amount" value="18000"> <button type="submit" class="upgrade-button">Upgrade to Pro Plan</button> </form> </div> </div> </div> <? } ?> </div> </div> <div id="panelStatus" class="mt-4"></div> </div> </div> </div> </div> </main> </div> <? include 'assets/php/footer.php' ?> <? include 'assets/php/bottom_navbar.php' ?> </body> </html> <? } } ?>