de php4 à php5 --> marche plus !

Mammouth du PHP | 620 Messages

09 juin 2010, 11:33

Bonjour,
pour l'administration de mon site internet qui est en php4 j'utilise pour me connecter un systeme d'identifacation par login et mot de passe.
le probleme et que je souhaiterai passer en php5 mais dès que je me met en php 5 impossible de me connecter (dès que je valide le login et mot de passe je suis redirigé vers l'index de l'admin... et aucun messages d'erreurs)

voici ma page connexion :
<?php
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; // 
								
								//enregistrement de l'ouverture de session pour statistique
        						$sql = "INSERT INTO IWhistocnx(ID_Utilisateur, Nom_Utilisateur, Date_Connexion )
								 VALUES('','$TB_Nom_Utilisateur', NOW())"; mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error()); 
								   
                                   // 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" />
<style type="text/css">
<!--
.Style1 {color: #000000}
-->
</style>
</head>

<body>

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



<form id="monForm" action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
		<fieldset>
        <legend><span class="Style1">Connexion Admin</span></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>

<?php } ?>
    </div>

</body>
</html>


et voici ma page index.php
<?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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Administration du site <?php echo $_SERVER['HTTP_HOST']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<?php if(isset($_SESSION["TB_Nom_Utilisateur"])) { ?>

<div id="global">

	<div id="header"> 
        <a href="index.php"><img src="images/accueil.png" alt="accueil administration" width="36" height="38" class="accico" /></a>
    	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"> 

        	<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>
        

    <div class="clear15px"></div>
  </div>      
      <div id="footer">
      </div>
      
  <!--Fin de contenu -->

</div><!--Fin de global -->

<?php } else { ?> 

    <a href="connexion.php"><img src="http://<?php echo $_SERVER['HTTP_HOST'] ?>/admin/images/connexion-admin.png" alt="Connexion à l'administration du site Internet" /></a>

<?php } ?>

</body>
</html>

ViPHP
ViPHP | 5462 Messages

09 juin 2010, 11:41

hello, pour afficher les erreurs verfie bien ton php.ini les valeurs

Code : Tout sélectionner

display_errors = On error_reporting = E_ALL | E_STRICT

Eléphant du PHP | 314 Messages

09 juin 2010, 11:45

tu peux aussi utiliser
ini_set('display_errors',1);
! ;)
Cordialement,
Julien - http://laravel.fr/

Mammouth du PHP | 620 Messages

09 juin 2010, 11:48

je n'ai pas acces au php.ini je suis hebergé chez 1and1.
ini_set('display_errors',1);
je met ça ou ?

ViPHP
ViPHP | 5462 Messages

09 juin 2010, 11:50

je n'ai pas acces au php.ini je suis hebergé chez 1and1.
tu crees un fichier.htaccess avec

Code : Tout sélectionner

php_flag display_errors on php_value error_reporting 32767
sinon dans tes fichier php au debut tu fais
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

Mammouth du PHP | 620 Messages

09 juin 2010, 11:54

je viens de tester et toujours le meme probleme.
puis dans le phpinfo j'ai bien display_errors On On

sur ma page index si je fais :
session_start();
echo 'bonjour ' .$_SESSION["TB_Nom_Utilisateur"];
Je n'ai pas d'affichage pour $_SESSION["TB_Nom_Utilisateur"];
j'ai juste bonjour qui s'affiche

Mammouth du PHP | 620 Messages

09 juin 2010, 18:12

bon alors je ne comprend pas. j'ai repassé en php4 pour que sa fonctionne mais le fait qu'en php5 ne fonctionne pas reste un mystère et m'embête ! Du coup je suis obligé de resté en php4 ... bonjour l'évolution.
Se qui me semble bizard c'est que je croyais que php5 pouvait lire le php4 et apparemment c'est pas le cas.
Je comprend pourquoi de nombreux hébergeur reste en php4 par défaut.
Mais bon si qq a une idée du pourquoi sa ne fonctionne pas en php5 je veux bien car là je sèche.

ViPHP
ViPHP | 5462 Messages

09 juin 2010, 18:22

ta bien mis le
ini_set('error_reporting',  E_ALL | E_STRICT);