Bonjour,
Mon probleme est simple.
A partir d'un formulaire l'utilisateur peut acceder a son compte(securise)
Mon probleme est que je n'arrive pas a acceder a la page pub(espace membre).
JE crois que tout est ds des fonctions comme necessite_identification et is_identifie(Que j'ai pas ou/et je n'arrive pas a faire)
voila mon code ;
Le formulaire(qui marche bien)
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 <div class="element_menu"> <div id="sous_menu"><img src="images/stars.jpg" width="30" height="20" border="0" align="left" /> <h3>Pro access</h3> </div> <form method="post" action="<?=$_SERVER['PHP_SELF']?>?action=log"> <p> <label for="Username">Username :</label> <input type="text" name="login" id="login" style="width:120px" /> <br /> <label for="Password">Password :</label> <input type="password" name="pass" id="pass" style="width:120px" /> </p> <p> <input type="submit" value="Login"/> </p> </form></div> <?php if (isset($message_erreur)) {echo "<p class=\"errorMessage\">".$message_erreur."</p>";}?> </div>
CE qui se passe quand on valide:
les fonctions que j'utilise:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php if (est_identifie()) { $goto = "./pubs.php"; header("Location: ".$goto); die; } ?> <?php $message_erreur = ""; if (isset($_GET['action']) && $_GET['action'] == "log") { $login=addslashes($_POST['login']); $pass=addslashes($_POST['pass']); $utilisateur = verifier_authentification($login,$pass); if ($utilisateur) { $_SESSION['utilisateur'] = $utilisateur; $_SESSION["ip"] = $_SERVER['REMOTE_ADDR']; $_SESSION["url"] = $_SERVER['HTTP_HOST']; /* * Si wantsurl est défini, alors on se redirige vers cette page sinon * on revient à la page d'accueil */ if (empty($_SESSION['wantsurl'])) { $goto = "./pubs.php"; } else { $goto = $_SESSION['wantsurl']; } header("Location: ".$goto); die; } else { $message_erreur .= "Login et/ou mot de passe incorrect(s) - Veuillez essayer à nouveau."; } } ?>
Resultat,j'arrive bien a me connecter puisque j'ai une redirection vers pubs.php,mais vu que pubs.php commence par necessite_identification();
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
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 <?PHP function est_identifie() { /* Retourne true si l'utilisateur des identifie */ global $SESSION, $REMOTE_ADDR; return isset($SESSION) && isset($SESSION["login"]) && isset($SESSION["ip"]) && $SESSION["ip"] == $REMOTE_ADDR; } function necessite_identification() { /* Cette fonction vérifie si l'utilisateur est identifié. Si non affiche * l'écran d'authentification avant de laisser l'utilisateur continuer */ global $SESSION, $dossier_www, $PHP_SELF; if (! est_identifie()) { $SESSION["wantsurl"] = $PHP_SELF; echo "Access denied!!!!!!"; die; } } function verifier_authentification($login, $pass) { /* Vérifie le nom d'utilisateur et le mot de passe. S'ils sont valides, renvoie un * tableau avec les infos de l'utilisateur */ $requete = "SELECT * FROM Users WHERE username = '$login' AND password = '$pass'"; $qid = mysql_query($requete) or die("Erreur lors de l'exécution de la requête111111: ".mysql_error()); $num=mysql_num_rows($qid); if (mysql_num_rows($qid) ==1 ) { return mysql_fetch_array($qid); } else { return; } } ?>
J'ai le message d'erreur access denied!!!! Preuve que je ne suis pas identifier.
Est ce que quelqu'un aurait un conseil a me donner pour me debloquer!!!!
Merci beaucoup
(dsl pour les accents j'utilises un clavier anglais lol)
Partager