IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Probleme de deconnexion après script


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 77
    Points : 53
    Points
    53
    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 : 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
    <?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 : 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
     
    	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

  2. #2
    Membre actif Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Points : 211
    Points
    211
    Par défaut
    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"
    Rod

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    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"

  4. #4
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut
    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'] :

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    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

  6. #6
    Membre actif Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Points : 211
    Points
    211
    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 : 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
     
    <?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
    Rod

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 77
    Points : 53
    Points
    53
    Par défaut
    meme avec ce code pour la page du traitement
    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
    <?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 : 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
    <?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>

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    et si tu tentes ceci :

    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
    <?php
     
     
    session_start(); 
    if($_SESSION['pseudo']=="ALMAFRANCE")
    {
       header('Location: membres_non_droit.php');
    }
     
     
    else {
    header ('Location: connexion.html');
        exit();
    }
     
     
    ?>

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2005, 11h02
  2. probleme de MBR apres suppression de linux
    Par amadoulamine1 dans le forum Windows XP
    Réponses: 15
    Dernier message: 17/05/2005, 15h19
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  4. Probleme de boot apres suppression de Linux
    Par m@xou dans le forum Administration système
    Réponses: 6
    Dernier message: 19/04/2004, 09h12
  5. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo