par
fabrice88250 » 14 avr. 2010, 09:13
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>
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]<?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>
[/php]
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; //
// 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>
[/php]