Script recherche mot de passe

Résolu
Bonjour,
alors je veux faire un script qui demande aux utilisateur d'inséré leur pseudo et leur mot de passe
<form action="paga.php" method="post">
<p>
<input type="text" name="posodo" />
<input type="text" name="passa" />
<input type="submit" value="Valider" />
</p>
</form>
après j'ai fait cette requete pour vérifier si le pseudo et le mot de passe sont bien situer dans la base de donné
$reponse="select motpasse from foruma where pseudo ='$posodo'";

if $reponse==$passa
{echo "<p>bravo felicitation</p>";
mais il ne veut pas marché je ne sais pas pourquoi,
merci pour vos reponse à bientot
Configuration: Windows XP
Internet Explorer 6.0

26 réponses

Résumé de la discussion

Un script PHP demande aux utilisateurs d'insérer leur pseudo et leur mot de passe via un formulaire et vérifie ensuite ces identifiants dans une base de données. Parmi les éléments proposés, il faut placer session_start() au tout début, sécuriser les entrées avec mysql_real_escape_string et htmlspecialchars, et gérer correctement la connexion à la base et sa fermeture. D'autres réponses soulignent l'importance d'éviter les erreurs liées à la portée des variables et de s'assurer que la connexion est accessible jusqu'à ce que le script se termine. En complément, des démonstrations montrent l'usage de PHP pour afficher des messages d'erreur adaptés et l'insertion dans la session de l'identifiant, afin d'améliorer l'expérience sans conclure sur l'état général.

Bobot (l’IA à votre service)
  1. Contributeur
    Salut,

    C'est normal, tu dois premièrement te connecter au serveur, puis choisir une base de donnée, puis executer la requête :
    $cnx = mysql_connect( "localhost", "root", "" ); // Pour une connection sur localhost avec le user "root" et le mot de passe ""
    
    mysql_select_db( "user", $cnx ); // selection de la table nommée "user"
    
    $result = mysql_query( "SELECT motpasse FROM foruma WHERE pseudo ='$posodo' ", $cnx ); // Exécution de la requête SQL
    list( $reponse ) = mysql_fetch_array($result); // le list() sert à mettre la première valeur du tableau créé par mysql_fetch_array() dans $reponse
    
    if ( $reponse==$passa )
    {
      echo "<p>bravo felicitation</p>";
    }
    A bientôt
    1. je te remerci beaucoups vlmath , sa a marché
      juste une question c'est quoi :
      list( $reponse ) = mysql_fetch_array($result); ??
      1. Contributeur
        la fonction mysql_fetch_array() crée un trableau unidimentionnel avec un résultat.

        La fonction list() te permet de stocker les valeurs du tableau dans des variables différentes.

        Par exemple :
        $tab = array();
        
        $tab[0] = "Térieur";
        $tab[1] = "Alain";
        $tab[3] = 35;
        
        list( $nom,$prenom,$age ) = $tab;
        
        print "$prenom $nom ($age)" // va imprimmer : Alain Térieur (35)
        1. je te remerci pour l'info, mon programe marche très bien sauf qu'un message apparait en dessous
          Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\doci\paga.php on line 45
          je ne sais pas ce que c'est !!
          1. Contributeur
            haa oui ... j'ai oublié ça ...

            il faut encore faire un
            mysql_close($cxn);
            Si ça ne règle pas le problème, donne moi la ligne 45 pour voir ...
            1. Contributeur
              aaaa ben non ... :D

              Tu dois lui dire quelle connection fermer .... ici, ça serait
              mysql_close( $cnx );
              1. salut salut :)
                je m'incruste =D

                alors $cnx , c'est le nom de ta connection je pence :

                $cnx = mysql_connect( "localhost", "root", "" );

                Voila salut ^^ !
                1. Contributeur
                  c'est exactement ça.

                  T'as la connection qui est enregistrée dans une variable, ici $cnx, et qui est utilisée dans toutes (je crois) les fonctions, pour indiquer sur quelle serveur (et table) il doit travailler.
              2. voila c'est ca.
                Comme lorsque tu nomme une feuille de style css en style.css , elle sera utiliser partout sous se nom, si tu en change le nom, plus rien ne fonctionne si tu n'a pas adapté ton nom aux autres variables ;)

                a bientôt !
                1. non je n'ai pas fait $cnx = mysql_connect( "localhost", "root", "" );
                  j'ai fait directement :
                  <?php

                  if ($_POST['posodo'] != NULL AND $_POST['passa'] != NULL)
                  {

                  mysql_connect("localhost", "root", "");
                  mysql_select_db("mama");
                  .
                  .
                  .
                  .
                  .
                  1. Contributeur
                    ça serait mieux de mettre le tout dans des variables, pour pouvoir, par exemple, refermer la connection, ou avoir plusieurs connections à la fois.
                    1. et aussi, pourquoi c'est en espagnol ??
                      car ce serais plus facil pour tout le monde si tu le mettait en francais nan ? a moin que se soit pour un site espanol :)
                      1. Contributeur
                        Perso, on me parle dans une langue, alors j'essaye de répondre dans la même (pour que celui qui pose la question comprenne bien et puisse directement implémenter le code).

                        Mais c'est vrai que pour les autres c'est pas super ...
                    2. bonjours à tous, et bien le message a changer le voila :
                      Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\doci\paga.php on line 58
                      1. Contributeur
                        Une fois qu'une connection mysql est ouvert avec $nomdelaconnection = mysql_connect(...); , il faut la refermer avec mysql_close($nomdelaconnection); , sinon t'auras des erreurs d'exécution ...
                        • 1
                        • 2