Bonjour,
je code une simple page HTML avec du PHP intégré, c'est une page d'authentification basique mais dans mon cas j'ai intégré les variables de connexion directement dans le code source et si les identifiants de connexion correspondent on est redirigé vers la console d'administration MAIS quand bien même ils correspondent ça ne fonctionne pas, je reste sur la même page d'authentification.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php // Definition des constantes et variables define('LOGIN','5460247PH21'); define('PASSWORD','M07598'); $errorMessage = ''; // Test de l'envoi du formulaire if(!empty($_POST)) { // Les identifiants sont transmis ? if(!empty($_POST['username']) && !empty($_POST['password'])) { // Sont-ils les mêmes que les constantes ? if($_POST['username'] !== LOGIN) { $errorMessage = 'Mauvais login !'; } elseif($_POST['password'] !== PASSWORD) { $errorMessage = 'Mauvais mot de passe !'; } else { // On ouvre la session session_start(); // On enregistre le username en session $_SESSION['username'] = LOGIN; // On redirige vers le fichier admin.php header('Location: http://espace.test.fr/dashboard.php'); exit(); } } else { $errorMessage = 'Veuillez renseigner les bons identifiants svp !'; } } ?> <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <title>Bemobank Online - Accès compte</title> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"> <link rel="stylesheet" href="./style.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script> </head> <body> <!-- partial:index.partial.html --> <div class="wrapper"> <form class="login" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> <p class="title">Entrez vos accès</p> <?php // Rencontre-t-on une erreur ? if(!empty($errorMessage)) { echo '<p>', htmlspecialchars($errorMessage) ,'</p>'; } ?> <input type="text" placeholder="Identifiant client" name="username" autofocus/> <i class="fa fa-user"></i> <input type="password" placeholder="Mot de passe" name="password" /> <i class="fa fa-key"></i> <a href="#">Mot de passe oublié?</a> <button type="submit" name="submit"> <i class="spinner"></i> <span class="state">Se connecter</span> </button> </form> <footer><div class="footer-container" data-is-view="true" style="position: static;"> <div class="container"> </div> </div></footer> </p> </div> <!-- partial --> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script><script src="./script.js"></script> </body> </html>
le fichier script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 var working = false; $('.login').on('submit', function(e) { e.preventDefault(); if (working) return; working = true; var $this = $(this), $state = $this.find('button > .state'); $this.addClass('loading'); $state.html('Authenticating'); setTimeout(function() { $this.addClass('ok'); $state.html('Welcome back!'); setTimeout(function() { $state.html('Log in'); $this.removeClass('ok loading'); working = false; }, 4000); }, 3000); });
Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158 body { font-family: "Open Sans", sans-serif; height: 100vh; background: url("https://i.imgur.com/HgflTDf.jpg") 50% fixed; background-size: cover; } @keyframes spinner { 0% { transform: rotateZ(0deg); } 100% { transform: rotateZ(359deg); } } * { box-sizing: border-box; } .wrapper { display: flex; align-items: center; flex-direction: column; justify-content: center; width: 100%; min-height: 100%; padding: 20px; background: rgba(4, 40, 68, 0.85); } .login { border-radius: 2px 2px 5px 5px; padding: 10px 20px 20px 20px; width: 90%; max-width: 320px; background: #ffffff; position: relative; padding-bottom: 80px; box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.3); } .login.loading button { max-height: 100%; padding-top: 50px; } .login.loading button .spinner { opacity: 1; top: 40%; } .login.ok button { background-color: #8bc34a; } .login.ok button .spinner { border-radius: 0; border-top-color: transparent; border-right-color: transparent; height: 20px; animation: none; transform: rotateZ(-45deg); } .login input { display: block; padding: 15px 10px; margin-bottom: 10px; width: 100%; border: 1px solid #ddd; transition: border-width 0.2s ease; border-radius: 2px; color: #ccc; } .login input + i.fa { color: #fff; font-size: 1em; position: absolute; margin-top: -47px; opacity: 0; left: 0; transition: all 0.1s ease-in; } .login input:focus { outline: none; color: #444; border-color: #2196F3; border-left-width: 35px; } .login input:focus + i.fa { opacity: 1; left: 30px; transition: all 0.25s ease-out; } .login a { font-size: 0.8em; color: #2196F3; text-decoration: none; } .login .title { color: #444; font-size: 1.2em; font-weight: bold; margin: 10px 0 30px 0; border-bottom: 1px solid #eee; padding-bottom: 20px; } .login button { width: 100%; height: 100%; padding: 10px 10px; background: #2196F3; color: #fff; display: block; border: none; margin-top: 20px; position: absolute; left: 0; bottom: 0; max-height: 60px; border: 0px solid rgba(0, 0, 0, 0.1); border-radius: 0 0 2px 2px; transform: rotateZ(0deg); transition: all 0.1s ease-out; border-bottom-width: 7px; } .login button .spinner { display: block; width: 40px; height: 40px; position: absolute; border: 4px solid #ffffff; border-top-color: rgba(255, 255, 255, 0.3); border-radius: 100%; left: 50%; top: 0; opacity: 0; margin-left: -20px; margin-top: -20px; animation: spinner 0.6s infinite linear; transition: top 0.3s 0.3s ease, opacity 0.3s 0.3s ease, border-radius 0.3s ease; box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.2); } .login:not(.loading) button:hover { box-shadow: 0px 1px 3px #2196F3; } .login:not(.loading) button:focus { border-bottom-width: 4px; } footer { display: block; padding-top: 50px; text-align: center; color: #ddd; font-weight: normal; text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2); font-size: 0.8em; } footer a, footer a:link { color: #fff; text-decoration: none; }
Partager