Vous utilisez jQuery pour envoyer et recevoir les données sur votre site web, mais vous avez un problème d'encodage de caractères (à,é,è ...), vous avez bien cherché mais vous n'arrivez toujours pas à trouver une solution ?
0 ){
// si le pseudo choisi est déjà utilisé par quelqu’un d’autre on affiche une erreur
header('HTTP/1.1 500 Nom d\'utilisateur déjà utilisé');
exit();
}
else{
//si le pseudo est disponible, on affiche un message de réussite
echo"Nom d'utilisateur disponible";}
}
Le code jquery est inclus lui aussi dans la même page
$().ready(function() { $('#username').keyup(function(){// quand une touche du clavier est relâchée setTimeout(function() { // On laisse un peu de temps avant d'éxecuter la fonction (3s=3000ms) var username =$("#username").val(); if(username == '' || username.length < 6){ // on vérefie si le formulaire n'est pas vide, et s'il contient au moins 6 caractères $('.erreur_user').html('Le nom d\'utilisateur contient moins de 6 caractères.'); $(".erreur_user").show(); return false; } else { jQuery.ajax({ type: 'POST', url: 'username.php', data: 'username='+username, success: function(response){ $(".erreur_user").replaceWith(response); }, error:function (xhr, ajaxOptions, thrownError){ $(".erreur_user").html(thrownError); $(".erreur_user").show(); return false; } }); } }, 3000); }); });Pour un meilleur fonctionnement, vérifier que vous avez bien indiqué l’emplacement de votre fichier (url: 'username.php',), ainsi que l’id du champs dont vous voulez vérifier la disponibilité (#username).
-- -- Structure de la table `users` -- CREATE TABLE IF NOT EXISTS `users` ( `id` int(6) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; -- -- Contenu de la table `users` -- INSERT INTO `users` (`id`, `username`, `password`) VALUES (1, 'user', ' e10adc3949ba59abbe56e057f20f883e'), (2, 'user2', ' e10adc3949ba59abbe56e057f20f883e'),;Si vous vous demandez pourquoi il y'a tout ce baratin dans le champ `password`, n'ayez pas peur, c'est équivalent à `123456` après le cryptage grâce à la fonction MD5(). On crée 3 champs, un pour l'id qui sera unique pour chaque membre, un autre pour les pseudos du membre et le dernier pour le mot de passe. Vous pouvez ajouter d'autres champs si vous voulez, je me suis limité à ces 3 car ils sont largement suffisants pour la fonction. Dés la création de la base de donnée, on peut attaquer la partie php du fichier connexion.php
$usr = trim(mysql_real_escape_string($_POST['username'])); $pwd =trim(mysql_real_escape_string(md5($_POST['userpass']))); if($usr && $pwd){ $str = mysql_query("select * from users where username = '".$usr."' and password= '".$pwd."' "); if(mysql_num_rows($str) > 0){//on verifie si le pseudo et le mot de passe sont correctes. $row=mysql_fetch_assoc($str); $m_id = $row['id'] ; $m_username = $row['username']; $m_password = $row['password']; $mnt=time(); if($_POST["cookie"]=="cookie"){//on vérifie si on veut garder la session active(se souvenir de moi). $temp_cookie=time()+3600*24*30;// la durée du cookie, 3600*24*30 en secondes=30jours. // on crée les cookies setcookie("id",$_SESSION['id'],$temp_cookie); setcookie("user",$_SESSION['user'],$temp_cookie); } // on crée les sessions $_SESSION['id'] = $m_id; $_SESSION['user'] = $m_username; echo "Vous êtes connecté ".$m_username.". "; echo '';//rediriger le membre connecté vers la page d’accueil } else { //si les informations entrées ne sont pas correcte echo"Le nom d'utilisateur ou le mot de passe est incorrecte. ";} }else { // si on a laissé un champ vide echo"Veuillez entrer un nom d'utilisateur est un mot de passe ";} }Explications: D'abords on vérifie si on a cliqué sur le bouton de connexion,si tous les champs ne sont pas vides on continue, sinon un message d'erreur sera affiché. Puis on communique avec la bdd pour savoir si ce membre existe et si le mot de passe est correcte. Ensuite on crée les sessions et les cookies si le membre a choisi de garder sa session active. Si on est arrivé a cette étape,un message s'affiche pour confirmer le succès de la connexion. Enfin on termine par les messages des erreurs, au cas où il y'avait un problème lors de la connexion. Maintenant on passe pour la partie html, il y'a pas grandes choses à faire, juste un formulaire.
Je vous ai préparé un seul fichier prêt à utiliser, il suffit juste d'installer la base de données. Vous pouvez d'ailleurs ajoutez/modifier le fichier comme vous voulez, pour vérifier si le membre est banni par exemple afin de l’interdire de se connecter. Permettez-moi de savoir comment cela fonctionne chez vous!Connexion