ok merci c'est fait. j'ai cependant encore un problème et de taillle !!!.
je suis hebergé chez 1and et par defaut leur serveurs son en php4.
pour passer en php5 ils offre donc la possibilité de la faire en ajoutant dans un fichier htaccess ( se que j'ai fait) :
Le truc c'est que le système d'identification avec session fonctionne très bien en php4 mais depuis que je me suis mis en php5 sa ne fonctionne plus.
il y a qq mois en arrière j'avais déjà tenté de passé de php4 à php5 mais j'avais abandonnée justement à cause de ce problème.
En fait lorsque je rentre mon identifiant et mot de passe si je fais un erreur sa me l'affiche (ça pas de pb sa fonctionne)
par contre si je rentre le bon identifiant et le bon mot de passe je retourne comme prévu sur ma page index mais le soucis c'est que je perd la session et du coup je suis obligé de ressaisir identifiant et mot de passe.... et du cout je tourne en rond car impossible de se connecter du coup.
De quoi penssez vous que celà pourait-il venir ?
je vous met mes sources index et connexion au cas ou quelqu'un pourait m'aider.
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/admin_model.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administration du site internet</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div id="adminaccueil">
<h1>Administration</h1>
<h2>| Mon site</h2>
<!-- InstanceBeginEditable name="contenu" -->
<?php if(isset($_SESSION["TB_Nom_Utilisateur"]))
{ ?>
<ul id='adminmenu'>
<li><a href="News/gestion-news.php">News</a></li>
<li><a href="wallpapers/gestion-wallpapers.php">Fonds d'écran</a></li>
</ul>
<p>
<a href="deconnexion.php">Déconnexion</a> |
<a href="creer-compte-utilisateur.php">Créer un compte utilisateur</a>
</p>
<?php
echo 'Vous êtes connecté en tant que : ' .$_SESSION["TB_Nom_Utilisateur"];
?>
<?php } else { ?>
<p>
|
<a href="connexion.php">Connexion</a> |
</p>
<?php } ?>
<!-- InstanceEndEditable -->
</div>
</body>
<!-- InstanceEnd --></html>
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"><!-- InstanceBegin template="/Templates/admin_model.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administration du site internet</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div id="adminaccueil">
<h1>Administration</h1>
<h2>| Mon site</h2>
<!-- InstanceBeginEditable name="contenu" -->
<?php if(isset($message)) { ?>
<p><?php echo $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form id="monForm" action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<fieldset>
<legend>Connexion </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 } ?>
<!-- InstanceEndEditable -->
</div>
</body>
<!-- InstanceEnd --></html>
ok merci c'est fait. j'ai cependant encore un problème et de taillle !!!.
je suis hebergé chez 1and et par defaut leur serveurs son en php4.
pour passer en php5 ils offre donc la possibilité de la faire en ajoutant dans un fichier htaccess ( se que j'ai fait) :
[code]AddType x-mapp-php5 .php[/code]
Le truc c'est que le système d'identification avec session fonctionne très bien en php4 mais depuis que je me suis mis en php5 sa ne fonctionne plus.
il y a qq mois en arrière j'avais déjà tenté de passé de php4 à php5 mais j'avais abandonnée justement à cause de ce problème.
En fait lorsque je rentre mon identifiant et mot de passe si je fais un erreur sa me l'affiche (ça pas de pb sa fonctionne)
par contre si je rentre le bon identifiant et le bon mot de passe je retourne comme prévu sur ma page index mais le soucis c'est que je perd la session et du coup je suis obligé de ressaisir identifiant et mot de passe.... et du cout je tourne en rond car impossible de se connecter du coup.
De quoi penssez vous que celà pourait-il venir ?
je vous met mes sources index et connexion au cas ou quelqu'un pourait m'aider.
ma page index.php :
[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/admin_model.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administration du site internet</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div id="adminaccueil">
<h1>Administration</h1>
<h2>| Mon site</h2>
<!-- InstanceBeginEditable name="contenu" -->
<?php if(isset($_SESSION["TB_Nom_Utilisateur"]))
{ ?>
<ul id='adminmenu'>
<li><a href="News/gestion-news.php">News</a></li>
<li><a href="wallpapers/gestion-wallpapers.php">Fonds d'écran</a></li>
</ul>
<p>
<a href="deconnexion.php">Déconnexion</a> |
<a href="creer-compte-utilisateur.php">Créer un compte utilisateur</a>
</p>
<?php
echo 'Vous êtes connecté en tant que : ' .$_SESSION["TB_Nom_Utilisateur"];
?>
<?php } else { ?>
<p>
|
<a href="connexion.php">Connexion</a> |
</p>
<?php } ?>
<!-- InstanceEndEditable -->
</div>
</body>
<!-- InstanceEnd --></html>
[/php]
ma page connexion :
[php]<?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"><!-- InstanceBegin template="/Templates/admin_model.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administration du site internet</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div id="adminaccueil">
<h1>Administration</h1>
<h2>| Mon site</h2>
<!-- InstanceBeginEditable name="contenu" -->
<?php if(isset($message)) { ?>
<p><?php echo $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form id="monForm" action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<fieldset>
<legend>Connexion </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 } ?>
<!-- InstanceEndEditable -->
</div>
</body>
<!-- InstanceEnd --></html>
[/php]