-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
138 lines (128 loc) · 6.37 KB
/
index.html
File metadata and controls
138 lines (128 loc) · 6.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Character Set and Viewport -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<meta name="format-detection" content="telephone=no, email=no, address=no">
<!-- Basic Meta Information -->
<title>Profile | Total Connect NFC</title>
<meta name="description" content="Create, manage, and share digital business cards using NFC technology.">
<meta name="author" content="Total Connect NFC">
<meta name="copyright" content="Total Connect NFC">
<meta name="language" content="en-US">
<meta name="rating" content="General">
<meta name="distribution" content="Global">
<!-- SEO -->
<meta name="robots" content="index, follow">
<meta name="googlebot" content="index, follow">
<meta name="bingbot" content="index, follow">
<meta name="revisit-after" content="7 days">
<link rel="canonical" href="https://tccards.tn/profile/">
<!-- Open Graph -->
<meta property="og:title" content="Total Connect NFC - Profile">
<meta property="og:description" content="Create, manage, and share digital business cards using NFC technology.">
<meta property="og:image" content="https://www.gstatic.com/identity/boq/accountsettingsmobile/contacts_card_scene_316x112_30b26c263ec7d6c2839b403059092259.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://tccards.tn/profile/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Total Connect NFC">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Total Connect NFC - Profile">
<meta name="twitter:description" content="Create, manage, and share digital business cards using NFC technology.">
<meta name="twitter:image" content="https://www.gstatic.com/identity/boq/accountsettingsmobile/contacts_card_scene_316x112_30b26c263ec7d6c2839b403059092259.png">
<meta name="twitter:site" content="@tccards_tn">
<meta name="twitter:creator" content="@tccards_tn">
<!-- Mobile App Settings -->
<meta name="theme-color" content="#ffffff">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="Total Connect NFC">
<meta name="mobile-web-app-capable" content="yes">
<meta name="HandheldFriendly" content="true">
<meta name="mobileoptimized" content="width">
<!-- Microsoft/Windows -->
<meta name="msapplication-TileColor" content="#000000">
<meta name="msapplication-TileImage" content="https://tccards.tn/Assets/150.png">
<meta name="msapplication-config" content="https://tccards.tn/browserconfig.xml">
<meta name="application-name" content="Total Connect NFC">
<meta name="msapplication-square70x70logo" content="https://tccards.tn/Assets/150.png">
<meta name="msapplication-square150x150logo" content="https://tccards.tn/Assets/150.png">
<meta name="msapplication-wide310x310logo" content="https://tccards.tn/Assets/150.png">
<meta name="msapplication-square310x310logo" content="https://tccards.tn/Assets/150.png">
<!-- Icons and Manifest -->
<link rel="icon" href="https://tccards.tn/Assets/150.png" type="image/x-icon">
<link rel="apple-touch-icon" sizes="180x180" href="https://tccards.tn/Assets/150.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://tccards.tn/Assets/150.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://tccards.tn/Assets/150.png">
<link rel="shortcut icon" href="https://tccards.tn/Assets/150.png">
<link rel="mask-icon" href="https://tccards.tn/Assets/150.png" color="#5bbad5">
<link rel="manifest" href="https://tccards.tn/manifest.json">
<link rel="image_src" href="https://tccards.tn/Assets/150.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<!-- Stylesheets -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<link href="https://cdn.tailwindcss.com" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<!-- Media Queries -->
<style>
@media screen and (max-width: 768px) {
body {
font-size: 14px;
}
}
@media screen and (max-width: 480px) {
body {
font-size: 12px;
}
}
@media (prefers-color-scheme: dark) {
body {
background-color: #121212;
color: #ffffff;
}
}
</style>
<script>
// Get the hash and remove the # symbol
const hash = window.location.hash.substring(1);
// Get the path from the URL
const path = window.location.pathname;
// Check if the path starts with /@ or /profile/
if (path.startsWith('/@')) {
// Redirect to the profile page with the hash
window.location.href = `/profile/#${hash}`;
} else if (path.startsWith('/profile/')) {
// Redirect to the profile page with the hash
window.location.href = `/profile/#${hash}`;
} else if (path === '/404.html') {
// If on 404 page, do nothing
} else {
// Redirect to 404 page if path is not recognized
window.location.href = '/404.html';
}
// Check if the hash is not empty
if (hash) {
// Whitelist only safe characters: letters, numbers, hyphens, underscores
const cleanHash = hash.replace(/[^a-zA-Z0-9-_]/g, '');
if (cleanHash) {
// Safe redirect with sanitized hash
window.location.href = `/profile/#${cleanHash}`;
} else {
// Empty/invalid hash → 404
window.location.href = '/404.html';
}
} else {
// No hash → 404
window.location.href = '/404.html';
}
</script>
</head>
<body>
<div class="loader"></div>
<script src="/profile/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
</body>
</html>