Connexion_php
antous
-
antous Messages postés 32 Statut Membre -
antous Messages postés 32 Statut Membre -
Bonjour,
j'ai un petit pb pr mon script de connexion utilisateur!!! kelkun pourra t'il maider???
voici le code:
<?php
// On démarre la session
session_start();
$loginOK = false; //
mysql_connect("localhost","root","");
mysql_select_db("");
$login=$_POST['login'];
$mdp=$_POST['mdp'];
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if (isset($_POST['login']) && isset($_POST['mdp'])) {
// On va chercher le mot de passe afférent à ce login
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);
// On vérifie que son mot de passe est correct
if (($login == $data['login'])and ($mdp == $data['mdp']) ) {
$loginOK = true;
}
}
}
// Si le login a été validé on met les données en sessions
if ($loginOK)
{
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp'];
echo "Bienvenue $login";
}
else {
echo "<center><font color='#ED5866'><b><h4>Acces non autorise ou veuillez vous s'inscrire.</h4></b></font></center>";
require('login.html');
exit;
}
mysql_close();
?>
j'ai un petit pb pr mon script de connexion utilisateur!!! kelkun pourra t'il maider???
voici le code:
<?php
// On démarre la session
session_start();
$loginOK = false; //
mysql_connect("localhost","root","");
mysql_select_db("");
$login=$_POST['login'];
$mdp=$_POST['mdp'];
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if (isset($_POST['login']) && isset($_POST['mdp'])) {
// On va chercher le mot de passe afférent à ce login
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);
// On vérifie que son mot de passe est correct
if (($login == $data['login'])and ($mdp == $data['mdp']) ) {
$loginOK = true;
}
}
}
// Si le login a été validé on met les données en sessions
if ($loginOK)
{
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp'];
echo "Bienvenue $login";
}
else {
echo "<center><font color='#ED5866'><b><h4>Acces non autorise ou veuillez vous s'inscrire.</h4></b></font></center>";
require('login.html');
exit;
}
mysql_close();
?>
22 réponses
wè j'ai petit pb, on m'affiche seulement le message "accès non autorisé ou veuillez vous inscrire", et on me redirige sur la page "login.html";
g ajouté la ( ki mank et on m'affiche ça:
Parse error: syntax error, unexpected '{' in C:\Users\Deline\wamp\www\test1\test'\login.php on line 23
Parse error: syntax error, unexpected '{' in C:\Users\Deline\wamp\www\test1\test'\login.php on line 23
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
si après
$login=$_POST['login'];
$mdp=$_POST['mdp'];
vous rajoutez :
echo "<pre>";print_r($_POST);echo "</pre>";
vous saurez si login et mdp sont renseignés, alors vous pourrez faire quelque chose,
mais actuellement le script que vous nous donnez ne peut nous permettre de vous en dire plus !
d'où viennent ces variables ?
--
si après
$login=$_POST['login'];
$mdp=$_POST['mdp'];
vous rajoutez :
echo "<pre>";print_r($_POST);echo "</pre>";
vous saurez si login et mdp sont renseignés, alors vous pourrez faire quelque chose,
mais actuellement le script que vous nous donnez ne peut nous permettre de vous en dire plus !
d'où viennent ces variables ?
--
Normal il manquait pas de (, c'est moi qui ne sais pas compter ;)
je trouve ton code un poil compliqué car tu verifies en deux temps le login et mdp
ta requete suffit
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
tu valides mdp et login
voila ce que j'utilise, te reste plus qu'a l'adapter
Tu noteras que j'utilise un fichier pour la connexion à la base de donnée
je trouve ton code un poil compliqué car tu verifies en deux temps le login et mdp
ta requete suffit
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
tu valides mdp et login
voila ce que j'utilise, te reste plus qu'a l'adapter
include 'connexion.inc.php';
@$pseudo=$_GET['pseudo'];
@$password=$_GET['pass'];
$_SESSION['pseudo'] = $pseudo ;
$_SESSION['password'] = $password ;
$sql="SELECT * FROM table WHERE pseudo = '".$_SESSION['pseudo']."' AND password = '".$_SESSION['password']."' ";
$result=mysql_query($sql);
$val = mysql_fetch_array($result);
if(!$val)
{
$_SESSION['etat'] = null ;
}else
{
$_SESSION['etat'] = "valide" ;
}
Tu noteras que j'utilise un fichier pour la connexion à la base de donnée
les variables viennent d'un formulaire login.html,
voici le formulaire en kestion:
<form Action ="login.php" Method ="POST" name = "Espace Client">
<table border="0" cellpadding="0" cellspacing="0">
<h4>Commande</h4>
<p><h4>Espace Client: Veuillez vous identifier</h4></p>
<br>
</table>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
<tr height="15">
<td width = ""> <div align = "right"> Login </div></td>
<td><input name = "Login" type = "text" Id = "Login" /></td>
</tr>
<tr>
<td> <div align = "right"> Mot de Passe </div></td>
<td><input name = "Password" type = "Password" Id = "Password" /></td>
</tr>
<tr>
<td colspan = "2">
<div align = "center">
<input type = "Submit" name = "Submit" Value = "Connection" /></td>
</div>
</td>
</tr>
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
</table>
<tr><td> </td></tr>
<tr><td> </td></tr>
<table width = "350" border ="0" bgcolor="#8080FF">
<tr>
<td><div align = "center">
Si vous êtes nouveau <a href="ficheClient.html">Inscrivez-vous</a>
</div>
</td>
</tr>
</table>
j'ai ajouté la ligne mais voilà ce ke ça donne:
Array
(
[Login] => charlene
[Password] => toto
[Submit] => Connection
)
Acces non autorise ou veuillez vous s'inscrire.
et on me redirige sur login.html
voici le formulaire en kestion:
<form Action ="login.php" Method ="POST" name = "Espace Client">
<table border="0" cellpadding="0" cellspacing="0">
<h4>Commande</h4>
<p><h4>Espace Client: Veuillez vous identifier</h4></p>
<br>
</table>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
<tr height="15">
<td width = ""> <div align = "right"> Login </div></td>
<td><input name = "Login" type = "text" Id = "Login" /></td>
</tr>
<tr>
<td> <div align = "right"> Mot de Passe </div></td>
<td><input name = "Password" type = "Password" Id = "Password" /></td>
</tr>
<tr>
<td colspan = "2">
<div align = "center">
<input type = "Submit" name = "Submit" Value = "Connection" /></td>
</div>
</td>
</tr>
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
</table>
<tr><td> </td></tr>
<tr><td> </td></tr>
<table width = "350" border ="0" bgcolor="#8080FF">
<tr>
<td><div align = "center">
Si vous êtes nouveau <a href="ficheClient.html">Inscrivez-vous</a>
</div>
</td>
</tr>
</table>
j'ai ajouté la ligne mais voilà ce ke ça donne:
Array
(
[Login] => charlene
[Password] => toto
[Submit] => Connection
)
Acces non autorise ou veuillez vous s'inscrire.
et on me redirige sur login.html
alors première remarque, si le name de login est bien login, le name du mot de passe ets Password et pas mdp ce qui fait que $mdp = $_POST[[mdp']; ne contient rien
--
--
Le probleme vient de :
<td><input name = "Password" type = "Password" Id = "Password" /></td>
Essaye avec:
<td><input name = "mdp" type = "Password" Id = "Password" /></td>
<td><input name = "Password" type = "Password" Id = "Password" /></td>
Essaye avec:
<td><input name = "mdp" type = "Password" Id = "Password" /></td>
Bonjour
Même si ça n'est pas là le problème...
C'est tellement absurde de vouloir vérifier le login et le mot de passe alors qu'il y a un WHERE dans ta requête.
Même si ça n'est pas là le problème...
C'est tellement absurde de vouloir vérifier le login et le mot de passe alors qu'il y a un WHERE dans ta requête.
j'ai rectifié le mot de passe par "mdp", mais on ne m'affiche tjrs le message d'erreur "accès non autorisé";
Laisse le name='mdp' et remplace ton name='Login' par un name='login' je ne sais plus si php est sensible à la case, mais si cela ne viens pas de la alors je seche (surtout si tu es sur que ton login et mdp sont juste)
Apres il faut faire tu pas a pas pour voir ce qui ce passe et ou est ce que ca merde
Apres il faut faire tu pas a pas pour voir ce qui ce passe et ou est ce que ca merde
ajoutez des echo du contenu des varaibles tout au long de votre code pour trouver là où le bât blesse.
par exmeple au retour de votre requête
if (($login == $data['login'])and ($mdp == $data['mdp']) )
par exmeple au retour de votre requête
if (($login == $data['login'])and ($mdp == $data['mdp']) )
j'ai encore un petit souci pour un autre script d'insertion des utilisateurs, presk le meme pb ke l'autre, je suis debutante en php, c pkoi je demande des aides;
cette fois ci c pour l'inscription des clients dans la base,
si les champs sont renseignés, on m'affiche juste le message d'erreur "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir."; alors k'es k'il fo faire????
je vous donne le code:
<?php
//connexion a la base
$connexion=mysql_connect ("localhost", "root", "")or die("Erreur de connexion:".mysql_error($connexion));
mysql_select_db("", $connexion)or die("Erreur de connexion:".mysql_error($connexion));
//on recupère les variables issues du formulaire
$nom=trim($_POST["nom"]);
$prenom=trim($_POST["prenom"]);
$adresse=trim($_POST["adresse"]);
$ville=trim($_POST["ville"]);
$cp=trim($_POST["cp"]);
$pays=trim($_POST["pays"]);
$mail=trim($_POST["mail"]);
$phone=trim($_POST["phone"]);
$login=trim($_POST["login"]);
$mdp=trim($_POST["mdp"]);
$confirme_mdp=trim($_POST["confirme_mdp"]);
$num_cb=trim($_POST["num_cb"]);
//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //requete pour s'assurer que le client n'est pas deja inscrit
$query =" SELECT login FROM clients";
$query.=" WHERE login = ".'"'. $login ."'.";
$result=mysql_num_rows(mysql_query($query));
if($result>=1)
{ ?> <div align="center"> <?php echo "Le login <b>$login</b> existe déjà!<br/>";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());
?> <div align="center"> <?php echo "Le client <b>$prenom $nom</b> a été enregistré.";
?> </div> <?php
}
}
?>
cette fois ci c pour l'inscription des clients dans la base,
si les champs sont renseignés, on m'affiche juste le message d'erreur "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir."; alors k'es k'il fo faire????
je vous donne le code:
<?php
//connexion a la base
$connexion=mysql_connect ("localhost", "root", "")or die("Erreur de connexion:".mysql_error($connexion));
mysql_select_db("", $connexion)or die("Erreur de connexion:".mysql_error($connexion));
//on recupère les variables issues du formulaire
$nom=trim($_POST["nom"]);
$prenom=trim($_POST["prenom"]);
$adresse=trim($_POST["adresse"]);
$ville=trim($_POST["ville"]);
$cp=trim($_POST["cp"]);
$pays=trim($_POST["pays"]);
$mail=trim($_POST["mail"]);
$phone=trim($_POST["phone"]);
$login=trim($_POST["login"]);
$mdp=trim($_POST["mdp"]);
$confirme_mdp=trim($_POST["confirme_mdp"]);
$num_cb=trim($_POST["num_cb"]);
//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //requete pour s'assurer que le client n'est pas deja inscrit
$query =" SELECT login FROM clients";
$query.=" WHERE login = ".'"'. $login ."'.";
$result=mysql_num_rows(mysql_query($query));
if($result>=1)
{ ?> <div align="center"> <?php echo "Le login <b>$login</b> existe déjà!<br/>";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());
?> <div align="center"> <?php echo "Le client <b>$prenom $nom</b> a été enregistré.";
?> </div> <?php
}
}
?>
Je comprend pas vraiment pourquoi tu fait ta requete ($requete) en 2 etapes, de plus tu selectionnes 11 champs et tu en renseigne 12
Donc soit tu as oublié pays soit il est de trop..
{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());
Donc soit tu as oublié pays soit il est de trop..
{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());
j'ai enlever le champs "pays", mais c tjrs le meme msg d'erreur;
affichez ce qu'ils contiennet
ici
//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";
peut être que les champs ne contiennent pas ce que vous attendez. les gens qui vous assistent ne le voient pas non plus
--
ici
//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";
peut être que les champs ne contiennent pas ce que vous attendez. les gens qui vous assistent ne le voient pas non plus
--
Humm normal... tu es bloqué avant (ca m'apprendra à lire le code à l'envers).
Toujours est il que le probleme de pays et réel et que ta requete est pas bonne sans la derniere modif
Je pense que ton probleme doit etre du meme ordre que celui de 'mdp'
Verifie dans ton formulaire que tout tes <input ... name='variable' > corresponde à ce que tu recupere avec ton POST
Formulaire question:
name='mdp'
Code traitement:
$mdp=$_POST['mdp']
Bon apres si cela ne marche toujours pas le plus simple c'est que tu m'envoye ton code...
Toujours est il que le probleme de pays et réel et que ta requete est pas bonne sans la derniere modif
Je pense que ton probleme doit etre du meme ordre que celui de 'mdp'
Verifie dans ton formulaire que tout tes <input ... name='variable' > corresponde à ce que tu recupere avec ton POST
Formulaire question:
name='mdp'
Code traitement:
$mdp=$_POST['mdp']
Bon apres si cela ne marche toujours pas le plus simple c'est que tu m'envoye ton code...
j'ai verifié
voici le code html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formulaire Client</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form Action ="inscription.php" Method ="POST" name = "FormulaireClient">
<center>
<font size="4"color="#000066"><strong>Fiche d'inscription</strong></font>
<p>
<font size="4" color="#660000"><strong>Identité</strong></font></p>
<br>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr>
<td> <div align = "right"> Nom </div></td>
<td><input name = "nom" type = "text" Id = "nom" /></td>
</tr>
<tr>
<td> <div align = "right"> Prénom </div></td>
<td><input name = "prenom" type = "text" Id = "pré" /></td>
</tr>
<tr>
<td> <div align= "right"> Adresse </div></td>
<td><input name="adresse" type="text" Id="adresse" /></td>
</tr>
<tr>
<td> <div align="right"> Ville </div></td>
<td><input name="ville" type="text" Id= "ville" /></td>
</tr>
<tr>
<td> <div align="right"> Code postal </div></td>
<td><input name="cp" type="text" Id= "cp" /></td>
</tr>
<tr>
<td> <div align="right"> Téléphone </div></td>
<td><input name="phone" type="text" Id= "phone" /></td>
</tr>
<tr>
<td> <div align="right"> Email </div></td>
<td><input name="mail" type="text" Id="mail" /></td>
</tr>
<tr>
<td> <div align="right"> N° carte bancaire </div></td>
<td><input name="num_cb" type="text" Id="num_cb" /></td>
</tr>
</table>
<br>
<font size="4" color="#660000"><strong>Informations relatives aux comptes</strong></font>
<br>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr>
<td> <div align="right">Login </div></td>
<td><input name="login" type="text" Id= "login" /></td>
</tr>
<tr>
<td> <div align="right">Mot de passe </div></td>
<td><input name="mdp" type="password" Id= "mdp" /></td>
</tr>
<tr>
<td> <div align="right">Confirmer le mot de passe </div></td>
<td><input name="confirme_mdp" type="password" Id= "confirme_mdp" /></td>
</tr>
<tr>
<td colspan = "2">
<div align = "center">
<input type = "Reset" name = "Reset" Value = "Annuler" />
<input type = "Submit" name = "Submit" Value = "Inscription" /></div></td>
</tr>
</table>
</center>
</form>
</body>
</html>
voici le code html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formulaire Client</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form Action ="inscription.php" Method ="POST" name = "FormulaireClient">
<center>
<font size="4"color="#000066"><strong>Fiche d'inscription</strong></font>
<p>
<font size="4" color="#660000"><strong>Identité</strong></font></p>
<br>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr>
<td> <div align = "right"> Nom </div></td>
<td><input name = "nom" type = "text" Id = "nom" /></td>
</tr>
<tr>
<td> <div align = "right"> Prénom </div></td>
<td><input name = "prenom" type = "text" Id = "pré" /></td>
</tr>
<tr>
<td> <div align= "right"> Adresse </div></td>
<td><input name="adresse" type="text" Id="adresse" /></td>
</tr>
<tr>
<td> <div align="right"> Ville </div></td>
<td><input name="ville" type="text" Id= "ville" /></td>
</tr>
<tr>
<td> <div align="right"> Code postal </div></td>
<td><input name="cp" type="text" Id= "cp" /></td>
</tr>
<tr>
<td> <div align="right"> Téléphone </div></td>
<td><input name="phone" type="text" Id= "phone" /></td>
</tr>
<tr>
<td> <div align="right"> Email </div></td>
<td><input name="mail" type="text" Id="mail" /></td>
</tr>
<tr>
<td> <div align="right"> N° carte bancaire </div></td>
<td><input name="num_cb" type="text" Id="num_cb" /></td>
</tr>
</table>
<br>
<font size="4" color="#660000"><strong>Informations relatives aux comptes</strong></font>
<br>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr>
<td> <div align="right">Login </div></td>
<td><input name="login" type="text" Id= "login" /></td>
</tr>
<tr>
<td> <div align="right">Mot de passe </div></td>
<td><input name="mdp" type="password" Id= "mdp" /></td>
</tr>
<tr>
<td> <div align="right">Confirmer le mot de passe </div></td>
<td><input name="confirme_mdp" type="password" Id= "confirme_mdp" /></td>
</tr>
<tr>
<td colspan = "2">
<div align = "center">
<input type = "Reset" name = "Reset" Value = "Annuler" />
<input type = "Submit" name = "Submit" Value = "Inscription" /></div></td>
</tr>
</table>
</center>
</form>
</body>
</html>
Je viens de tester, et pour moi tout est Ok
Si tu debute je te conseil de faire l'aquisition d'un soft pour d'aider à debugger.
Perso j'utilise phped (version standard) qui fait du pas à pas avec l'affichage des variables, des erreurs etc etc...
C'est un bon investissement, tu gagneras pas mal de temps !
PHPEd n'est pas le seul à proposer du pas à pas... Maintenant te dire lequelle est le meilleur, c'est une autre histoire ;)
Si tu debute je te conseil de faire l'aquisition d'un soft pour d'aider à debugger.
Perso j'utilise phped (version standard) qui fait du pas à pas avec l'affichage des variables, des erreurs etc etc...
C'est un bon investissement, tu gagneras pas mal de temps !
PHPEd n'est pas le seul à proposer du pas à pas... Maintenant te dire lequelle est le meilleur, c'est une autre histoire ;)