Page 1 sur 1

probleme session de php4 à php5

Posté : 14 avr. 2010, 09:13
par fabrice88250
bonjour,
sous PHP Version 4.4.9 j'ai un system admin qui utilise des session qui fonctionne tres bien.
je viens de passé a PHP Version 5.2.4 et là sa ne fonctionne plus. lorsque j'essai de me connecté, je rentre donc mon identifiant et mon mot de passe mais au lieu de d'accéder a ma partie admin je retroune toujours sur la page de conexion ou l'on me redemande de me connecter.
Pourriez vous m'aider a faire en sorte que mon code fonctionne en php5.

voici ma page index :
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/model-admin.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administration du site <?php echo $_SERVER['HTTP_HOST']; ?></title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="../../admin/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<!-- InstanceBeginEditable name="test session" -->
<? if(isset($_SESSION["TB_Nom_Utilisateur"])) { ?>
<!-- InstanceEndEditable -->
<div id="global">

	<div id="header">
    Administration du site <a href="http://<?php echo $_SERVER['HTTP_HOST'] ?>"><?php echo $_SERVER['HTTP_HOST']; ?></a><br/>
	<?php echo 'Vous êtes connecté en tant que : ' .$_SESSION["TB_Nom_Utilisateur"]; ?>
   | <a href="http://<?php echo $_SERVER['HTTP_HOST'].'/admin/deconnexion.php' ?>">Se Déconnecter</a><br/>
    
    
    <?php
	$date = date("d-m-Y");
	$heure = date("H:i");
	Print("Nous sommes le $date et il est $heure");
	?>
    </div><!--Fin de header -->

	<div id="contenu">
      <!-- InstanceBeginEditable name="EditRegion3" -->
        <h1>Gestion dynamique du site</h1>
		<h2>Sélectionner votre destination</h2>
		<ul id='adminmenu'>
        	<li><a href="galerie/gestion-galerie.php">Gestion de la Galerie Photos</a></li>
        	<li><a href="News/gestion-news.php">Gestion des News / Actualités</a></li>
        	
	  </ul>
      
	    <!-- InstanceEndEditable -->
    </div>
	<!--Fin de contenu -->
</div><!--Fin de Global -->

<!-- InstanceBeginEditable name="fin test " --><? } else { ?> 
  <div class="center">
    <div align="center"><a href="connexion.php"><img src="../admin/images/connexion-admin.png" alt="Connexion à l'administration du site Internet" /></a></div>
  </div> 
<? } ?><!-- InstanceEndEditable -->



</body>
<!-- InstanceEnd --></html>
ma page connexion :
<?
session_start();
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_SESSION["TB_Nom_Utilisateur"]))
{
 header("Location: index.php");
}
else
{
     
     // Formulaire visible par défaut
     $masquer_formulaire = false;
     
     // Une fois le formulaire envoyé
     if(isset($_POST["BT_Envoyer"]))
     {
          
          // Vérification de la validité des champs
          if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"]))
          {
               $message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n";
               $message .= "L'utilisation de l'underscore est autorisée";
          }
          elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"]))
          {
               $message = "Votre mot de passe doit comporter au moins 6 caractères";
          }
          else
          {
               
               // Connexion à la base de données
               // Valeurs à modifier selon vos paramètres configuration
			   	mysql_connect("****","****","****"); 
				mysql_select_db("*****"); 

			   

 


               
               // Sélection de l'utilisateur concerné
               $result = mysql_query("
                    SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active
                    FROM Comptes_Utilisateurs
                    WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
               ");
               
               // Si une erreur survient
               if(!$result)
               {
                    $message = "Une erreur est survenue lors de la tentative de connexion";
               }
               else
               {
                    
                    // Si aucun utilisateur n'a été trouvé
                    if(mysql_num_rows($result) == 0)
                    {
                         $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas";
                    }
                    else
                    {
                         
                         // Récupération des données
                         $row = mysql_fetch_array($result);
                         
                         // Si le compte n'a pas été activé
                         if($row["Compte_Active"] == 0)
                         {
                              $message = "Votre compte utilisateur n'a pas été activé";
                         }
                         else
                         {
                              
                              // Vérification du mot de passe
                              if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"])
                              {
                                   $message = "Votre mot de passe est incorrect";
                              }
                              else
                              {
                               	//création de session							   
								$_SESSION['TB_Nom_Utilisateur'] = $TB_Nom_Utilisateur; //
								$_SESSION['ID_Utilisateur'] = $ID_Utilisateur; // 
								
								   
                                   // Fermeture de la connexion à la base de données
                                   mysql_close();
                                   
                                   // Redirection de l'utilisateur
                                   header("Location: index.php");
                              }
                              
                         }
                         
                    }
                    
               }
               
               // Fermeture de la connexion à la base de données
               mysql_close();
               
          }
          
     }
     
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Connexion</title>
<link href="../admin/style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div class="center">
    <? if(isset($message)) { ?>
    <?= $message; ?><? } if($masquer_formulaire != true) { ?>



<form id="monForm" action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
		<fieldset>
        <legend>Connexion Admin</legend>
				<label>Nom d'utilisateur</label> <input type="text" name="TB_Nom_Utilisateur" />        
				<label>Mot de passe</label> <input type="password" name="TB_Mot_de_Passe" />
                Connexion automatique <input type="checkbox" name="CB_Connexion_Automatique" />  
				<input type="submit" name="BT_Envoyer" value="Envoyer" />
		</fieldset>
</form>

<? } ?>
    </div>

</body>
</html>

Re: probleme session de php4 à php5

Posté : 14 avr. 2010, 15:12
par Nours312
t'as vérifié tes parametres dans php.ini ?

Re: probleme session de php4 à php5

Posté : 23 avr. 2010, 15:39
par baptiste
J'ai eu le même problème que toi. Pour moi ça vient des mysql_close(); parce que sans cela marche et avec ça fait tout bugger. Voila je sais pas si c'est cela, je fais que débuter. Bonne chance

Re: probleme session de php4 à php5

Posté : 23 avr. 2010, 15:41
par Yosh
Déjà en php5 la balise d'ouverture de script php n'est plus <? mais <?php

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 08:54
par fabrice88250
ok ok j'ai mis <?php au lieu de <?.
Sa ne regle pas mon probléme je peu toujours pas me connecter alors que sous php4 sa fonctionne

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 10:07
par stealth35
ok ok j'ai mis <?php au lieu de <?.
Sa ne regle pas mon probléme je peu toujours pas me connecter alors que sous php4 sa fonctionne
met bien tes erreurs en E_ALL | E_STRICT :wink:

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 10:11
par fabrice88250
E_ALL ??? E_STRICT ???

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 10:16
par stealth35

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 10:57
par fabrice88250
ah et je doit mettre ça ou ?

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 11:04
par stealth35
ah et je doit mettre ça ou ?
sois dnas le php.ini sois dans le un htaccess, sois en haut de ton code

Re: probleme session de php4 à php5

Posté : 12 juil. 2010, 18:35
par AB
ok ok j'ai mis <?php au lieu de <?.
Tu l'as fait dans TOUT le code de TOUTES tes pages ?