PageSourceSearch

https://www.route-crypto-daive.ai/login/

html route-crypto-daive.ai collected 2026-10-05 15:11:21 UTC 12,223 bytes, 373 lines download raw bytes

1<!DOCTYPE html>
2<html lang="it">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>Route Crypto DAIVE</title>
7    
7<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
7
8<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
9<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
10<link rel="stylesheet" href="https://www.route-crypto-daive.ai/static/styles.css">
11<script src="https://app.simplebotinstall.com/js/chat_plugin.js" data-bot-id="32148"></script>
11
12<link rel="icon" type="image/png"  href="https://cdn-icons-png.flaticon.com/512/1813/1813778.png">
13</head>
14<body style="background-color: #4d6e74;">
15
16    <style>
17  nav ul a {
18    color: white;
19    font-weight: 500;
20    transition: color 0.3s ease;
21  }
22
23  nav ul a:hover {
24    color: white;
25    background-color: transparent;
26  }
27
28  .logo-img {
29    height: 40px;
30    margin-top: 10px;
31  }
32
33  /* Migliora l'icona della bandiera */
34  .language-icon {
35    height: 17px;
36    margin-left: 10px;
37    vertical-align: middle;
38  }
39
40  /* Allinea le voci del menu e l'icona del selettore di lingua */
41  ul.right {
42    display: flex;
43    align-items: center;
44  }
45
46  .sidenav-trigger {
47    margin-top: 8px;
48  }
49
50  /* Migliora l'allineamento dell'icona bandiera nel mobile */
51  .sidenav .language-icon {
52    height: 24px;
53  }
54</style>
55
56<header>
57  <nav class="main-nav" style="background-color: #104447;">
58    <div class="nav-wrapper container">
59      <a href="/" class="brand-logo left">
60        <img src="/static/img/logo.png" alt="Route Crypto Training" class="logo-img">
61      </a>
62      <a href="#" data-target="mobile-demo" class="sidenav-trigger right">
63        <i class="material-icons">menu</i>
64      </a>
65      <ul class="right hide-on-med-and-down">
66        
67        
68          <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li>
69        
70        <li><a href="/#concetto">Concetto</a></li>
71        <li><a href="/#strumenti">Strumenti</a></li>
72        <li><a href="/#categorie">Categorie</a></li>
73        
74          <li><a href="/login/">Accedi</a></li>
75        
76        <!-- Icona per il selettore di lingua -->
77        <li>
78          <a href="#" id="language-toggle">
79            <img id="language-icon" src="https://flagcdn.com/it.svg" alt="Italian" class="language-icon" />
80          </a>
81        </li>
82      </ul>
83    </div>
84  </nav>
85
86  <!-- Sidenav per mobile -->
87  <ul class="sidenav" id="mobile-demo">
88    
89    
90      <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li>
91    
92    <li><a href="/#concetto">Concetto</a></li>
93    <li><a href="/#strumenti">Strumenti</a></li>
94    <li><a href="/#categorie">Categorie</a></li>
95    
96      <li><a href="/login/">Accedi</a></li>
97    
98    <!-- Icona per il selettore di lingua nel mobile -->
99    <li>
100      <a href="#" id="language-toggle-mobile">
101        <img id="language-icon-mobile" src="https://flagcdn.com/it.svg" alt="Italian" class="language-icon" />
102      </a>
103    </li>
104  </ul>
105</header>
106
107<!-- Script per gestire il cambio di lingua e le icone -->
108<script>
109    document.addEventListener('DOMContentLoaded', function() {
110        var elems = document.querySelectorAll('.sidenav');
111        var instances = M.Sidenav.init(elems, {});
112
113        const languageIcon = document.getElementById('language-icon');
114        const languageIconMobile = document.getElementById('language-icon-mobile');
115
116        const currentLang = getCookie('locale') || 'it'; // Default 'it'
117
118        // Imposta icona iniziale in base alla lingua corrente
119        updateLanguageIcon(currentLang);
120
121        // Gestisci click per cambiare lingua
122        document.getElementById('language-toggle').addEventListener('click', function() {
123            const newLang = currentLang === 'it' ? 'en' : 'it';
124            setCookie('locale', newLang, 30);
125            updateLanguageIcon(newLang);
126            window.location.reload(); // Ricarica pagina per applicare lingua
127        });
128
129        document.getElementById('language-toggle-mobile').addEventListener('click', function() {
130            const newLang = currentLang === 'it' ? 'en' : 'it';
131            setCookie('locale', newLang, 30);
132            updateLanguageIcon(newLang);
133            window.location.reload(); // Ricarica pagina per applicare lingua
134        });
135
136        // Aggiorna l'icona della lingua
137        function updateLanguageIcon(lang) {
138            if (lang === 'it') {
139                languageIcon.src = "https://flagcdn.com/it.svg";
140                languageIconMobile.src = "https://flagcdn.com/it.svg";
141            } else {
142                languageIcon.src = "https://flagcdn.com/gb.svg";
143                languageIconMobile.src = "https://flagcdn.com/gb.svg";
144            }
145        }
146
147        // Funzione per impostare un cookie
148        function setCookie(name, value, days) {
149            const d = new Date();
150            d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
151            let expires = "expires=" + d.toUTCString();
152            document.cookie = name + "=" + value + ";" + expires + ";path=/";
153        }
154
155        // Funzione per leggere un cookie
156        function getCookie(name) {
157            let decodedCookie = decodeURIComponent(document.cookie);
158            let ca = decodedCookie.split(';');
159            for(let i = 0; i < ca.length; i++) {
160                let c = ca[i].trim();
161                if (c.indexOf(name + "=") === 0) {
162                    return c.substring(name.length + 1, c.length);
163                }
164            }
165            return "";
166        }
167    });
168</script>
168
169
170    <main>
171        <div class="container">
172  
173    
174  
175  <div class="row" style="margin-top: 5%; margin-bottom: 5%;">
176    <div class="col s12 m8 offset-m2 l6 offset-l3">
177      <div class="card">
178        <div class="card-content">
179          <span class="card-title center-align">Accedi a Route Crypto Training</span>
180          <form id="login-form" action="/login/" method="POST">
181            <div class="input-field">
182              <i class="material-icons prefix">person</i>
183              <input id="username" name="username" type="text" class="validate" required pattern=".{3,}" title="Il nome utente deve essere di almeno 3 caratteri">
184              <label for="username">Nome utente o Email</label>
185            </div>
186            <div class="input-field">
187              <i class="material-icons prefix">lock</i>
188              <input id="password" name="password" type="password" class="validate" required pattern=".{3,}" title="La password deve essere di almeno 3 caratteri">
189              <label for="password">Password</label>
190            </div>
191            <div class="center-align">
192              <button class="btn-large waves-effect waves-light" type="submit" style="background-color: #E09111; width: 100%; margin-top: 20px;">
193                Accedi <i class="material-icons right">login</i>
194              </button>
195            </div>
196          </form>
197        </div>
198        <div class="card-action">
199          <p class="center-align">Non hai un account? <a href="/register/" style="color: #E09111;">Registrati qui</a></p>
200          <p class="center-align"><a href="#" id="reset-password-link" style="color: #104447;">Password dimenticata?</a></p>
201          <form id="reset-password-form" action="/reset_password_request" method="POST" style="display: none; margin-top: 20px;">
202            <div class="input-field">
203              <i class="material-icons prefix">email</i>
204              <input id="reset-email" name="email" type="email" class="validate" required>
205              <label for="reset-email">Inserisci la tua email</label>
206            </div>
207            <div class="center-align">
208              <button class="btn waves-effect waves-light" type="submit" style="background-color: #104447;">
209                Richiedi reset
210              </button>
211            </div>
212          </form>
213        </div>
214      </div>
215    </div>
216  </div>
217</div>
218
219
220<style>
221  .card {
222    border-radius: 8px;
223    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
224  }
225  .card-title {
226    color: #333333;
227    font-weight: 600;
228    margin-bottom: 30px;
229  }
230  .input-field input:focus + label,
231  .input-field input:valid + label {
232    transform: translateY(-20px) scale(0.8);
233    color: #E09111 !important;
234  }
235  .input-field input:focus {
236    border-bottom: 1px solid #E09111 !important;
237    box-shadow: 0 1px 0 0 #E09111 !important;
238  }
239  .input-field .prefix.active {
240    color: #E09111;
241  }
242  .btn-large:hover {
243    background-color: #104447 !important;
244  }
245  .alert {
246    padding: 15px;
247    margin-bottom: 20px;
248    border: 1px solid transparent;
249    border-radius: 4px;
250  }
251  .alert.success {
252    color: #155724;
253    background-color: #d4edda;
254    border-color: #c3e6cb;
255  }
256  .alert.error {
257    color: #721c24;
258    background-color: #f8d7da;
259    border-color: #f5c6cb;
260  }
261</style>
262
263<script>
264document.addEventListener('DOMContentLoaded', function() {
265  const loginForm = document.getElementById('login-form');
266  const resetPasswordLink = document.getElementById('reset-password-link');
267  const resetPasswordForm = document.getElementById('reset-password-form');
268
269  resetPasswordLink.addEventListener('click', function(e) {
270    e.preventDefault();
271    resetPasswordForm.style.display = resetPasswordForm.style.display === 'none' ? 'block' : 'none';
272  });
273
274  loginForm.addEventListener('submit', function(event) {
275    if (!loginForm.checkValidity()) {
276      event.preventDefault();
277      loginForm.classList.add('was-validated');
278    }
279  });
280
281  M.updateTextFields(); // This function updates the position of labels for prefilled or autofilled inputs
282});
283</script>
283
284
285<!-- Include Materialize JavaScript -->
286<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
286
287    </main>
288
289    <footer class="page-footer">
290  <div class="container">
291    <div class="row">
292      <div class="col l4 s12">
293        <h5>Route Crypto Training©</h5>
294        <p>Una piattaforma di formazione e knowledge management su blockchain e criptovalute, specificamente concepita per Consulenti Private Banking, Consulenti Finanziari, Wealth Manager, Family Office e Consulenti Previdenziali</p>
295      </div>
296      <div class="col l4 s12">
297        <h5>Link Utili</h5>
298        <ul>
299          <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li>
300          <li><a href="/#concetto">Concetto</a></li>
301          <li><a href="/#strumenti">Strumenti</a></li>
302          <li><a href="/#categorie">Categorie</a></li>
303          <li><a href="https://www.route-crypto-training.com/pages/contatti">Contatti</a></li>
304        </ul>
305      </div>
306      <div class="col l4 s12">
307        <h5>Seguici</h5>
308        <div class="social-icons">
309          <a href="https://www.linkedin.com/company/route-crypto-training/?viewAsMember=true" class="btn-floating"><i class="fab fa-linkedin"></i></a>
310        </div>
311      </div>
312    </div>
313  </div>
314  <div class="footer-copyright">
315    <div class="container">
316      © 2024 MFG Consulting SA. Tutti i diritti riservati.
317    </div>
318  </div>
319</footer>
320
321
322<style>
323  .page-footer {
324    background-color: #104447;
325    color: #FFFFFF;
326    padding-top: 40px;
327  }
328
329  .page-footer h5 {
330    font-size: 18px;
331    font-weight: 600;
332    margin-bottom: 20px;
333  }
334
335  .page-footer p, .page-footer ul li a {
336    color: #FFFFFF;
337    font-size: 14px;
338  }
339
340  .page-footer ul li {
341    margin-bottom: 10px;
342  }
343
344  .page-footer ul li a:hover {
345    transition: color 0.3s ease;
346  }
347
348  .social-icons {
349    margin-top: 20px;
350  }
351
352  .social-icons .btn-floating {
353    background-color: #E09111;
354    margin-right: 10px;
355  }
356
357  .social-icons .btn-floating:hover {
358    background-color: #FFFFFF;
359    color: #104447;
360  }
361
362  .footer-copyright {
363    background-color: rgba(0, 0, 0, 0.1);
364    padding: 15px 0;
365    font-size: 12px;
366  }
367</style>
368
369<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
370<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
370
371
372</body>
373</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.