Merci pour le tuyau, ça resservira sûrement à d'autres
<? session_start();
include("config.inc.php");
include("functions.inc.php");
// nettoyage des données en entrée
$loginm = clean_input($_POST['loginm']);
$password = clean_input($_POST['password']);
// Récupérer le prénom et le nom du login "prenom.nom"
$champs = explode(".",$loginm);
$prenom = $champs[0];
$nom = $champs[1];
// connection à la BDD
$db = mysql_connect($dbhost,$dbuser,$dbpass)
or die("Impossible de se connecter à la base de données !");
mysql_select_db($dbname,$db)
or die ("Impossible de sélectionner la base de données !");
// verification de l'utilisateur en fonction du login et du mot de passe
$sql = "SELECT id, first_name, last_name FROM members WHERE first_name='".$prenom."' AND last_name='".$nom."' AND password='".$password."'";
$result = mysql_query($sql)
or die ("Impossible de récupérer vos informations !");
if (mysql_num_rows($result) != 1) {
session_unset();
session_destroy();
setcookie("check_email", "", time()-1800, "/", "", 0);
setcookie("check_hash", "", time()-1800, "/", "", 0);
setcookie(session_name(), "", time()-1800, "/", "", 0);
// message d'erreur de connexion
die("L'autentification a échoué !<br>Retournez sur la page de <a href=index.php>Connexion</a> et connectez-vous à nouveau !");
} else {
$_SESSION['IDtag'] = mysql_fetch_row($result);
// Créer un cookie valable 30 minutes
setcookie("check_email", $email, time()+1800, "/", "", 0);
setcookie("check_hash", md5($email.$hash_password), time()+1800, "/", "", 0);
// Remplacer le champ "first login" à '0' pour indiquer que l'utilisateur s'est déjà connecté au moins une fois au site
$sql = "UPDATE members SET first_login=0 WHERE id='".$_SESSION['IDtag'][0]."'";
$result = mysql_query($sql)
or die ("Impossible de mettre à jour le tag de session !");
header("Location:members/index.php");
exit;
}
?>
avant, mon script se foutait que dans la base le prénom et le nom soit accentué ou pas, et maintenant si je mets pas les caractères accentués, ça marche pas, j'arrive sur le message d'erreur de connexion<?php
function sansaccent($chaine)
{
$accents = array("à","ä","é","è","ë","ï","ö","ù");
$sans = array("a","e","e","e","e","i","o","u");
$retour = str_replace($accents, $sans, $chaine);
return $retour;
}
?>
Applique ça aux valeurs envoyées vers la base de données.Qqn aurait une explication et une solution? J'ai des milliers d'utilisateurs, donc pas question de supprimer ou de changer leurs données...ERROR 1062 : Duplicate entry 'Rene' for key 1
Le probleme se pose sur MyISAM et InnoDB indifferement...Global Variables
character_set_server = latin1
character_set_system = utf8