à toutes et à tous,
Mise en situation :
J'ai créé un espace membre. Je me connecte SANS problème à l'espace membre. Les login et mot de pass sont dans une base SQL (requete voir fichier connexion.php)
Dans le fichier index.php (deuxieme code) j'inclus mon fichier (debut du code) de connexion.php si le formulaire a été remplis.
Mon problème :
La commande suivante est executée vue que la réponse de la base sql est 1 (partie du fichier connexion.php)
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header("Location: phpinfo.php");
exit;
Ensuite une fois rediriger vers la page phpinfo.php le code suivant est executé et je me fait rediriger vers index.php alors que le code cidessu à été executé![]()
La question :session_start() ;
// on vérifie si l'utilisateur est identifié
if ( !isset( $_SESSION['login'] )) {
// la variable de session n’existe pas,
// donc l'utilisateur n'est pas authentifié
// On redirige sur la page permettant de s’authentifier
header('Location: index.php') ;
// on arrête l'exécution
exit() ;
}
Quel est le problème ?
=======Les différents scripts============
fichier "connexion.php"
fichier "index.php"
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 <?php // on teste si le visiteur a soumis le formulaire de connexion if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect('xxxx', 'root', 'xxxx'); mysql_select_db ('phpbb', $base); // on teste si une entrée de la base contient ce couple login / pass $sql = 'SELECT count(*) FROM phpbb_users WHERE username ="'.addslashes($_POST['login']).'" AND user_password ="'.md5(addslashes($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result($req); mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; header("Location: phpinfo.php"); exit; } // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = '<b><font color="#FF0000">Compte non reconnu.</font></b>'; } // sinon, alors la, il y a un gros problème :) else { $erreur = '<b><font color="#FF0000">Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.</font></b>'; } } else { $erreur = '<b><font color="#FF0000">Au moins un des champs est vide.</font></b>'; } ?>
fichier "phpinfo.php"
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
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 <?php // on teste si le visiteur a soumis le formulaire de connexion if(isset($_POST['submit_connexion']) && ($_POST['submit_connexion'] == 'connexion')) { include('script/connexion.php'); } // on teste si le visiteur a soumis le formulaire d'inscription if (isset($_POST['inscription']) && ($_POST['inscription'] == 'Inscription')) { include('script/inscription.php'); } ?> <html> <head> <title>Accuille</title> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body bgcolor=#FFFFFF leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 background="images/main_bg.jpg"> <br> <!---------------------> <!-- Tableau de haut --> <!---------------------> <table width="90%" height="80" border="3" align="center" bgcolor="#DEDEDE" background="images/tabhaut.jpg"> <tr> <td> </td> </tr> </table> <br> <table width="90%" height="85%" align="center" id="2-1234"> <tr> <td width="250" height="100%" valign="top"> <!-------------------------> <!-- Tableau de droite 1 --> <!-------------------------> <?php include("include/liens.php"); ?> <table height="5" width="250"> <tr> <td> </td> </tr> </table> <?php include("include/google-shearch.php"); ?> </td> <td width="20" height="100%"></td> <!-------------------------> <!-- Tableau de gauche 1 --> <!-------------------------> <td width="100%" height="100%" valign="top"> <table width="100%" height="100%" border="3" bgcolor="#DEDEDE"> <tr> <td valign="top"> <div align="center"> <a href="http://fredericbalon.be/sms.php"><img src="http://fredericbalon.be/smsfree2.jpg"/></a> </div><br> extranet<br> </td> </tr> </table> </td> <td width="20" height="100%"> </td> <td width="250" height="100%" valign="top"> <!-------------------------> <!-- Tableau de gauche 2 --> <!-------------------------> <table width="250" height="50" border="3" bgcolor="#DEDEDE" align="center"> <tr> <td align="center" valign="middle"> <form method="post" action="index.php"> <?php include(dirname(__FILE__).'/include/connexion_form.php'); ?> </form> </td> </tr> </table>
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 <?php session_start() ; // on vérifie si l'utilisateur est identifié if ( !isset( $_SESSION['login'] )) { // la variable de session nexiste pas, // donc l'utilisateur n'est pas authentifié // On redirige sur la page permettant de sauthentifier header('Location: index.php') ; // on arrête l'exécution exit() ; } phpinfo(); ?>
Partager