Connection membre en php

fabrice11901 Messages postés 787 Statut Membre -  
 wiwimagique -
Bonjour, voila je vous explique : j'ai un site et je fais un site pour des amis; pour ces amis, je suis entrain de créer un tchat jusque là pas de pb sur leur site y a une inscription à fiare avant d'accèder au tchat; en fait ils m'ont demander que l'orsque le membre va sur le tchat asv (age sexe ville) soit automatiquement chercher dans la table là pas de soucis mais voila comment faut-il établir la connexion du membre? j'ai déja trouver des script d'espace membre mais ils ne fonctionne pas comme je veux si vous pouviez me donner la requete qui permet de vérifier un membre auprès d'une table mysql ça serrai gentil :
requete et un echo si l'identification fonctionne on envois location : tchat si la connexion n'est pas bonne location : page erreur. Merci d'avance !

93 réponses

  • 1
  • 2
  • 3
  • 4
  • 5
Résumé de la discussion

L'authentification d'un membre pour accéder à un chat est discutée, utilisant une table MySQL et une vérification automatique des identifiants lors de l'accès, via un formulaire de connexion.
Plusieurs propositions utilisent une requête SQL du type SELECT pseudo, passe FROM compte WHERE pseudo='$pseudo' AND passe='$passe' pour valider les identifiants et rediriger vers le chat ou une page d'erreur.
Des échanges évoquent des détails de mise en connexion (paramètres, choix des bases de données, messages d'erreur) et des améliorations possibles comme l'adaptation du code et la compatibilité des tables.
D'autres conseils soulignent l'importance de sécuriser la connexion en utilisant des requêtes préparées et en hachant les mots de passe, afin d'éviter les risques d'injection SQL et d'exposer les identifiants.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Salut,

    Le meilleur moyen d'avoir ce que tu veux, c'est de le développer toi-même, et ce sera bien plus simple pour toi après pour retoucher, comprendre etc etc...

    L'idée (en admettant que ton membre est déjà inscrit, et qu'il veut se logger) :

    1. Récupération du pseudo et du pass;

    2. Connexion à la bdd;

    3. Ressortir de la bdd le pass selon le pseudo (p. ex : "SELECT pass FROM users WHERE pseudo=$pseudo");

    4. Comparaison du pass ressortit de la bdd avec celui saisit par le visiteur;

    5. Redirection en fonction de la comparaison.

    Si t'as un problème, hésite pas ;)

    @+
    0
  2. fabrice11901 Messages postés 787 Statut Membre 64
     
    Salut, au niveau de la connexion je sais faire c'est juste la comparaison et l'envois vers la page en fonction de la connexion que je sais pas faire.
    Si tu peux m'aider pour la comparaison. Merci
    0
  3. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Bon, allez, aujourd'hui je suis sympa ;)
    // Premièrement, tu récupère les données
    // A adapter à la structure de tes pages, ton method etc
    $mdp = $_POST['mdp'];
    $pseudo = $_POST['pseudo'];
    
    // Là-dessous tu met ton script de connexion à ta bdd
    connexion();
    
    // Et là tu ressort les infos pour la comparaison
    $requete = "SELECT mdp FROM users WHERE pseudo='$pseudo'";
    $result = mysql_query($requete);
    $objet = mysql_fetch_object($result);
    
    if($mdp == $objet->mdp){
      // les instructions que tu veux si le mot de passe est correct
    }
    else{
      // les instructions que tu veux si le mot de passe est faux
    }
    
    

    Voilà une ébauche pour les idées principales, à toi maintenant d'améliorer un peu tout ça. Par exemple si l'utilisateur n'est pas trouvé, tu peux lui proposer de s'inscrire, etc, à toi d'imaginer ;)
    0
  4. fabrice11901 Messages postés 787 Statut Membre 64
     
    Salut, merci d'être de bonne humeur ! j'ai un petit pb l'orsque j'exécute le script avec le formulaire j'ai l'erreur : warning mysql_fetch_object l'adresse du script est :
    http://sons.gratuits.free.fr/voila.php
    merci
    0
    1. Erdnax Messages postés 2279 Statut Contributeur 497
       
      Est-tu sûr que le pseudo saisi existe bien dans la base de donnée ?
      0
      1. fabrice11901 Messages postés 787 Statut Membre 64 > Erdnax Messages postés 2279 Statut Contributeur
         
        Salut, voila le code que tu m'as donné avec les actions qui ne fonctionne pas ! la page n'affiche rien qu'on soit bien loger ou pas l'adresse de la page est toujours la mêmme :
        http://sons.gratuits.free.fr/voila.php
        voici le code :
        <? $pseudo=$_POST['pseudo']; $mdp=$_POST['mdp']; mysql_connect("sql.free.fr","sons.gratuits","****"); mysql_select_db("sons_gratuits");
        $requete = "SELECT passe FROM comptes WHERE pseudo='$pseudo'";
        $result = mysql_query($requete);
        $objet = mysql_fetch_object($result);





        if($passe == $objet->passe){
        // les instructions que tu veux si le mot de passe est correct header("Location:1.php");
        }
        else{
        // les instructions que tu veux si le mot de passe est faux header("Location:erreur.htm");
        }
        mysql_close(); ?>
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fabrice11901 Messages postés 787 Statut Membre 64
     
    Salut, oui le pseudo est bien dans la table; mais à parament c'est un pb php dans le mysql_fetch_objetc tu es aller voir sur l'url que j'ai donné?
    0
  7. fabrice11901 Messages postés 787 Statut Membre 64
     
    Salut ça y est y a plus d'erreur mais qu'on est le bon pseudo ou un faux ça ne fais rien voici le code que j'ai rajouter regarde si y a ps d'erreur au passage :

    <? $pseudo=$_POST['pseudo']; $mdp=$_POST['mdp']; mysql_connect("sql.free.fr","sons.gratuits","******"); mysql_select_db("sons_gratuits");
    $requete = "SELECT passe FROM comptes WHERE pseudo='$pseudo'";
    $result = mysql_query($requete);
    $objet = mysql_fetch_object($result);

    if($passe == $objet->passe){
    // les instructions que tu veux si le mot de passe est correctbonjour
    }
    else{
    // les instructions que tu veux si le mot de passe est faux bonsoir
    } mysql_close(); ?>
    0
  8. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Re,
    if($passe == $objet->passe){ 
    // les instructions que tu veux si le mot de passe est correctbonjour 
    } 
    else{ 
    // les instructions que tu veux si le mot de passe est faux bonsoir 
    }

    Et ben c'est ça qu'il faut modifier ! Je ne sais pas ce que tu veux mettre comme action en fonction du résultat de la comparaison.

    En dessous de :

    // les instructions que tu veux....

    il faut que tu mette l'action a effectuer pour le cas cité ! Les bonjour et bonsoir, c'est quoi ? ce que tu veux ? Je vois pas vraiment le rapport... il faut plutot que tu mette une redirection vers une page si le loggin est juste, et retour à la page de saisie de mdp si la comparaison est fausse.
    0
  9. fabrice11901 Messages postés 787 Statut Membre 64
     
    Salut, dsl je t'ai encore mi le vieu fichier sur ccm je te met le code donc que j'ai changer avecles cactions et qui n'affiche rien :

    <? $pseudo=$_POST['pseudo']; $passe=$_POST['passe']; mysql_connect("sql.free.fr","sons.gratuits","*****"); mysql_select_db("sons_gratuits");
    $requete = "SELECT passe FROM comptes WHERE pseudo='$pseudo'";
    $result = mysql_query($requete);
    $objet = mysql_fetch_object($result);

    if($passe == $objet->passe){
    // les instructions que tu veux si le mot de passe est correct header("Location:1.php");
    }
    else{
    // les instructions que tu veux si le mot de passe est faux header("Location:erreur.htm");
    }
    mysql_close(); ?>
    0
  10. fabrice11901 Messages postés 787 Statut Membre 64
     
    Bonjour, après avoir fais moi même mon script de connexion y a une erreur au niveau de la requete je vous met mon code et si vous trouvez une erreur merci de m'en informer :

    <?
    $pseudo=$_POST['pseudo']; $passe=$_POST['passe']; //***connection***
    /* Tu dois changer localhost par sql.free.fr, root par sons_gratuits et mettre ton mot de passe */
    $dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "*******");

    //***S'il n'y a pas d'erreur de connection***
    if(!mysql_errno($dbc))
    {
    //***Sélection de la base de données***
    mysql_select_db("sons_gratuits");

    //***Requête qui selectionne tout le contenu de la table formulaire***
    $requete = mysql_query("SELECT pseudo,passe FROM compte WHERE pseudo='$pseudo' and passe='$passe'");

    if(mysql_num_rows($requete)==0)
    {
    header("Location:erreur.htm"); } else{ header("Location:1.php");} mysql_close();
    ?>
    0
    1. Erdnax Messages postés 2279 Statut Contributeur 497
       
      Salut,

      Passé un bon wee-end ?

      Pour ton code, il me semble que tu as une erreur là :
      <? 
      $pseudo=$_POST['pseudo']; $passe=$_POST['passe']; //***connection*** 
      /* Tu dois changer localhost par sql.free.fr, root par sons_gratuits et mettre ton mot de passe */ 
      $dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "*******"); 
      
      //***S'il n'y a pas d'erreur de connection*** 
      if(!mysql_errno($dbc)) 
      
      {  <---- Tu ne fermes pas cette accolade 
      
      //***Sélection de la base de données*** 
      mysql_select_db("sons_gratuits"); 
      
      //***Requête qui selectionne tout le contenu de la table formulaire*** 
      $requete = mysql_query("SELECT pseudo,passe FROM compte WHERE pseudo='$pseudo' and passe='$passe'"); 
      
      if(mysql_num_rows($requete)==0) 
      {
      header("Location:erreur.htm"); } else{ header("Location:1.php");} mysql_close(); 
      ?>

      Vérifie ceci, et dis-moi si tu as d'autres erreur, en précisant le message.
      0
  11. fabrice11901 Messages postés 787 Statut Membre 64
     
    Slt, ben en fait je pense pas que l'erreur vienne de là parcq qd j'exécute le script il annonce une erreur à la ligne 18 je crois et ça tombe sur la requete; si tu trouves quelques chose... merci
    0
    1. Erdnax Messages postés 2279 Statut Contributeur 497
       
      Ah, mais oui, bien sur...

      Bouge pas, je vais te reprendre ton code.
      0
  12. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Voilà, essaye ça :
    <? 
    $pseudo=$_POST['pseudo'];
    $passe=$_POST['passe'];
    
    if((!isset($pseudo)||(!isset($passe)){ header("Location:erreur.htm");}
    
    
    //***connection*** 
    /* Tu dois changer localhost par sql.free.fr, root par sons.gratuits et mettre ton mot de passe */ 
    $dbc = @mysql_connect("sql.free.fr", "sons.gratuits", "*******"); 
    
    //***S'il n'y a pas d'erreur de connection*** 
    if(!mysql_errno($dbc)){
    
      //***Sélection de la base de données*** 
      mysql_select_db("sons.gratuits"); 
    
      //***Requête selection info sur membre*** 
      $requete = mysql_query("SELECT pseudo,passe FROM compte WHERE pseudo='$pseudo' AND passe='$passe'"); 
    
      if(mysql_num_rows($requete)==0){
        header("Location:erreur.htm");
      }
      else{
        header("Location:1.php");
      }
    }
    mysql_close();
    
    
    ?>
    0
  13. fabrice11901 Messages postés 787 Statut Membre 64
     
    salut, ben avec le code que tu m'as donné, là y a un soucis { à la ligne 5 mais je comprend pas si il manque ou si y a en trop;
    merci
    0
  14. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Un petit truc pour header("Location:erreur.htm"), il faut mettre un espace après les deux points:
    header("Location: erreur.htm")
    0
  15. fabrice11901 Messages postés 787 Statut Membre 64
     
    Bonjour, erdnax tu trouves mon erreur? merci
    0
  16. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Il faut remplacer
    if((!isset($pseudo)||(!isset($passe)){ header("Location:erreur.htm");}

    par:
    if(!isset($pseudo) || !isset($passe)){ header("Location:erreur.htm");}
    0
    1. Erdnax Messages postés 2279 Statut Contributeur 497
       
      Ta pas zoublié l'espace du location ? ;)
      0
    2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      :-D

      En fait je viens de me rendre compte que ça ne changeait rien, j'aime bien m'inventer de nouveaux obstacles de syntaxe....
      0
  17. fabrice11901 Messages postés 787 Statut Membre 64
     
    Bonjour, merci pour la vérification si pseudo ou pas a été rempli pas d'erreur mais toujours la même erreur à la ligne 18 qui correspond à la requete l'ors qu'on rempli les champs dans le formulaire et l'orsqu'on fait envoyer? vous trouvez pas l'erreur? parce que moi pour moi la requete est juste mais un parce erreor ligne 18 vient ce poser là... la page ce trouve à :
    http://sons.gratuits.free.fr/voila1.php
    merci
    0
  18. Erdnax Messages postés 2279 Statut Contributeur 497
     
    En fait, je me demande si tu n'as pas un problème dans ta bdd. Es-tu sûr d'avoir des valeurs, les champs de noms correspondants, etc, t'as vraiment tout bien vérifié ? Le nom de ta table, de ta base, de tes champs etc...
    0
  19. fabrice11901 Messages postés 787 Statut Membre 64
     
    Slt, oui je suis sur que ma bdd fonctionne très bien parce que le message d'erreur parce error ne vient pas de la bdd mais du code php puis si ma bdd ne fonctionnerai pas les tchat que j'ai fais ne fonctionnerai pas... avec un parce erreor ligne 18 c'est sur que ça vient du code... merci
    0
  20. fabrice11901 Messages postés 787 Statut Membre 64
     
    Slt, ouhé là je comprend pas trop mon erreur merci de te pencher dessus !
    0
  • 1
  • 2
  • 3
  • 4
  • 5