Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2006, 11h04   #1
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 77
Points : 28
Points : 28
Par défaut [Sécurité] Probleme de deconnexion après script

Bonjour,
J'ai donc une page qui me permet de modifier les informations sur un membre de mon site.
Mais lorsque j'appuie sur le bouton du formulaire cela me renvoie a la page de connexion(en gros ca me deconnecte)
je ne comprend pas trop pourquoi
Le code du formulaire
Code :
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
<?php
session_start();
if (!isset($_SESSION['pseudo']) ) 
{
    header ('Location: connexion.html');
    exit();
}
if($_SESSION['pseudo']!="ALMAFRANCE")
{
	header('Location: membres_non_droit.php');
}
?>
<html>
	<head >
		<title>Espace Membre</title>
		<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" /> 
	</head>
	<body>
		<div id="en_tete">
			 <center> <img src="logo.gif"></center>
		</div>
 
		<div id="menu">
			 <h3>Menu</h3> <!-- Titre du sous-menu -->
			<ul>
				<li><a href="admin_telecharger.php">Telecharger fichier Excel</a></li> 
				<li><a href="admin_gerer_mb.php">Gerer les utilisateurs</a></li>
				<li><a href="Deconnection.php">Déconnecter</a></li>
			</ul>
		</div>
 
		<div id="corps">
			<h1>WebALMA : La plateforme internet de l'association</h1>
			<br><br>
			<?php
				require("config.inc.php");
				//Connexion à mysql.
  	 			mysql_connect($host,$username,$password);
  	 			mysql_select_db($bdd_name);
				$pseudo = $_GET['Pseudo'];
				$req = "SELECT * FROM membres  WHERE pseudo = '".$pseudo . "'";
				$ret = mysql_query ($req) or die (mysql_error ());
				while ($donnees = mysql_fetch_array($ret))
				{
					$mot_passe = $donnees['mot_passe'];
					$mail = $donnees['mail'];
				}
				echo "<li>Pseudo :".$pseudo;
				echo "<li>Mot de passe :".$mot_passe;
				echo "<li>Mail :".$mail;
				mysql_close(); 
			?>
 
 
			 <form method="post" action="modifier_mb.php">
 
				<center>
				<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2" width="25%" BGCOLOR=#ffffcc>
					<tr>
						<td>Pseudo :</td>
 
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
							 <input type="text" name="pseudo" />
						</TD>
					</tr>
					<tr>
						<td>Mot de passe : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="password" name="mot_passe"  />
						</TD>
					</tr>
					<tr>
						<td>Mail : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="text" name="mail"  />
						</TD>
					</tr>
 
					<tr>
						<td>
							<input type="submit" name="modifier_mb" value="Modifier ce membre" />	
						</td>
						<td></td>
					</tr>
				</TABLE>
                	</form>
			<br><br><br><br>
		<div id="pied_de_page">
			Copyright : CHEVOBBE Nicolas, ROZIER Vincent, 2006<br>
			Association ALMA
		</div>
 
	</body>
</html>
Et la page php qui traite le tout
Code :
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
 
	session_start();
	if (!isset($_SESSION['pseudo'])) 
	{
    		header ('Location: connexion.html');
    		exit();
	}
	if($_SESSION['pseudo']!="ALMAFRANCE")
	{
		header('Location: membres_non_droit.php');
	}
 
	if (isset($_POST['pseudo']) && isset( $_POST['mot_passe']) && isset( $_POST['mail']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty( $_POST['mail']))
	{
  	 	require("config.inc.php");	
		mysql_connect($host,$username,$password);
  	 	mysql_select_db($bdd_name);
 
		$verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";	
		$pseudo_md = $_POST['pseudo'];
		$mot_passe = $_POST['mot_passe'];
		$mail = $_POST['mail'];
		if(!preg_match($verif,$mail))
		{
        		header("location: admin_modifier_un_mb_pb.php");
		}
		else
		{
			$req = "UPDATE membres SET pseudo='$pseudo_md', mot_passe='$mot_passe',mail='$mail'  WHERE pseudo='$pseudo_md'";
			//$req = "INSERT INTO membres VALUES('', '$pseudo_md', '$mot_passe.', '$mail')";
			$ret = mysql_query ($req) or die (mysql_error ());
			$_SESSION['pseudo']= "ALMAFRANCE";
			mysql_close();
			header("location:admin_modifier_mb_succes.php?pseudo=' .$pseudo_md .'");
		}
 
	}
	else
	{
		header("location:admin_modifier_un_mb_pb.php");
	}
?>
En enlevant la partie de test sur le haut de la page php cela ne change rien donc je ne pense pas que ca vienne de la page.
merci
oldscrout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h20   #2
Membre actif
 
Avatar de funckfot
 
Étudiant
Inscription : mars 2006
Messages : 221
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 221
Points : 180
Points : 180
c chau a te repondre comme sa

mais au moin es que tu va sur la page qui traite toute les informations

je croi que c la page "modifier_mb.php"
funckfot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 12h41   #3
Membre régulier
 
Inscription : mars 2006
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 92
Points : 90
Points : 90
le pb vient peut être que tu nommes la variable de ton formulaire avec le même que nom que la variable de session "pseudo"
monsieurjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 14h04   #4
Membre actif
 
Avatar de snipes
 
Inscription : septembre 2004
Messages : 497
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 497
Points : 195
Points : 195
est ce que la page qui traite le tout comme tu dis est bien la page -> modifier_mb.php

et lorsque l utilisateur s authentifie est ce que tu affecte bien une valeur a ta variable $_SESSION['pseudo'] :
snipes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 14h44   #5
Membre du Club
 
Inscription : novembre 2005
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 236
Points : 45
Points : 45
oui oui la page existe, $_SESSION['pseudo'] est bien affecté
C'est pour ca que ca me semble bizarre la deconnexion se fait des que j'appuie sur le bouton du formulaire
shub est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2006, 13h51   #6
Membre actif
 
Avatar de funckfot
 
Étudiant
Inscription : mars 2006
Messages : 221
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 221
Points : 180
Points : 180
Par défaut trouver l'eerur

met des echo juste avant tes header meme si sa fait des erreur tu saura ou ce situ l'erreur a partir de la il sera plus facil pourkoi tu te trompe .
(savoir dans qu'elle condition tu passe)
un peu comme sa
Code :
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
 
<?php
 
   session_start();
   if (!isset($_SESSION['pseudo']))
   {
          echo "_SESSION['pseudo'] inexistant<br>";//<------voir ou tu va
          header ('Location: connexion.html');
          exit();
   }
   if($_SESSION['pseudo']!="ALMAFRANCE")
   {
      echo "_SESSION['pseudo']!="ALMAFRANCE"<br>";//-savoir ou tu va
      header('Location: membres_non_droit.php');
   }
 
   if (isset($_POST['pseudo']) && isset( $_POST['mot_passe']) && isset( $_POST['mail']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty( $_POST['mail']))
   {
         require("config.inc.php");   
      mysql_connect($host,$username,$password);
         mysql_select_db($bdd_name);
 
echo "5<br>";// savoir ou tu va
      $verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";   
      $pseudo_md = $_POST['pseudo'];
      $mot_passe = $_POST['mot_passe'];
      $mail = $_POST['mail'];
      if(!preg_match($verif,$mail))
      {
              header("location: admin_modifier_un_mb_pb.php");
      }
      else
      {
         $req = "UPDATE membres SET pseudo='$pseudo_md', mot_passe='$mot_passe',mail='$mail'  WHERE pseudo='$pseudo_md'";
         //$req = "INSERT INTO membres VALUES('', '$pseudo_md', '$mot_passe.', '$mail')";
         $ret = mysql_query ($req) or die (mysql_error ());
         $_SESSION['pseudo']= "ALMAFRANCE";
         mysql_close();
         header("location:admin_modifier_mb_succes.php?pseudo=' .$pseudo_md .'");
      }
 
   }
   else
   {
echo "4<br>";//<------------------ savoir ou tu va
      header("location:admin_modifier_un_mb_pb.php");
   }
?>
il est vrai que c un code de branque mais sa ma sorti de plus d'une galère
funckfot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2006, 17h13   #7
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 77
Points : 28
Points : 28
meme avec ce code pour la page du traitement
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
 
	if (isset($_POST['pseudo']) && isset( $_POST['mot_passe']) && isset( $_POST['mail']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty( $_POST['mail']))
	{
 
		$pseudo_md = $_POST['pseudo_md'];
 
			header("location:admin_modifier_mb_succes.php?pseudo=' .$pseudo_md .'");
 
 
	}
	else
	{
		header("location:admin_modifier_un_mb_pb.php");
	}
?>
Cela me deconnecte et me renvoie a la page de connexion!
J'ai modifié un peu le formulaire
Code :
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
<?php
session_start();
if (!isset($_SESSION['pseudo']) ) 
{
    header ('Location: connexion.html');
    exit();
}
if($_SESSION['pseudo']!="ALMAFRANCE")
{
	header('Location: membres_non_droit.php');
}
?>
<html>
	<head >
		<title>Espace Membre</title>
		<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" /> 
	</head>
	<body>
		<div id="en_tete">
			 <center> <img src="logo.gif"></center>
		</div>
 
		<div id="menu">
			 <h3>Menu</h3> <!-- Titre du sous-menu -->
			<ul>
				<li><a href="admin_telecharger.php">Telecharger fichier Excel</a></li> 
				<li><a href="admin_gerer_mb.php">Gerer les utilisateurs</a></li>
				<li><a href="Deconnection.php">Déconnecter</a></li>
			</ul>
		</div>
 
		<div id="corps">
			<h1>WebALMA : La plateforme internet de l'association</h1>
			<br><br>
			<?php
				require("config.inc.php");
				//Connexion à mysql.
  	 			mysql_connect($host,$username,$password);
  	 			mysql_select_db($bdd_name);
				$pseudo = $_GET['Pseudo'];
				$req = "SELECT * FROM membres  WHERE pseudo = '".$pseudo . "'";
				$ret = mysql_query ($req) or die (mysql_error ());
				while ($donnees = mysql_fetch_array($ret))
				{
					$mot_passe = $donnees['mot_passe'];
					$mail = $donnees['mail'];
				}
				echo "<li>Pseudo :".$pseudo;
				echo "<li>Mot de passe :".$mot_passe;
				echo "<li>Mail :".$mail;
				//mysql_close(); 
			?>
 
 
			 <form method="post" action="modifier_mb.php">
 
				<center>
				<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2" width="25%" BGCOLOR=#ffffcc>
					<tr>
						<td>Pseudo :</td>
 
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
 
						</TD>
					</tr>
					<tr>
						<td>Mot de passe : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="password" name="mot_passe"  />
						</TD>
					</tr>
					<tr>
						<td>Mail : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="text" name="mail"  />
						</TD>
					</tr>
 
 
					<tr>
						<td>Nom contact : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="text" name="Nom_contact"  />
						</TD>
					</tr>
					<tr>
						<td>Adresse : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="text" name="adresse"  />
						</TD>
					</tr>
					<tr>
						<td>Telephone : </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<input type="text" name="telephone"  />
						</TD>
					</tr>
					<tr>
						<td>Privileges: </td>
						<TD ALIGN="LEFT" HEIGHT=35  valign="middle" CLASS="text8">
						<label><input type="radio" name="admin" value="0" /> Administrateur</label><br />
      						<label><input type="radio" name="admin" value="1" /> Membre </label><br />
						</TD>
					</tr>
					<tr>
						<td>
							<input type="submit" name="modifier_mb" value="Modifier les informations" />	
						</td>
						<td></td>
					</tr>
				</TABLE>
                	</form>
			<br><br><br><br>
		<div id="pied_de_page">
			Copyright : CHEVOBBE Nicolas, ROZIER Vincent, 2006<br>
			Association ALMA
		</div>
 
	</body>
</html>
oldscrout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2006, 21h37   #8
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
et si tu tentes ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
 
session_start(); 
if($_SESSION['pseudo']=="ALMAFRANCE")
{
   header('Location: membres_non_droit.php');
}
 
 
else {
header ('Location: connexion.html');
    exit();
}
 
 
?>
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h40.


 
 
 
 
Partenaires

Hébergement Web