Code : faire mot de passe ?

Résolu
Bonjour,

Je commence en programmation et j'ai besoin de conseil pour mon code. Je dois demander à l'usager d'entrer son nom d'usager et mot de passe et puis les valider. Voici mon code.

<html>
<head>
<title>exercicePratique1</title>
</head>
<body>

<?php
function authentification($usager, $mdp)
{
if ($usager=="david" && $mdp=="abc123")
echo "Bienvenue david";
else
echo "Nom d'usager ou mot de passe invalide!";
}
if(isset($_POST['nomUsager']) && ($_POST['motDePasse'])'
echo "Bienvenue David" .authentification($_POST['nomUsager'] && ['motDePasse"]);
else
echo "Veuillez vous identifier
<form method=POST action='exercicePratique1.3.php'>
Veuillez entrez votre nom d'usager : <input type=text name=nomUsager> <br>
Veuillez entrez votre mot de passe : <input type=text name=motDePasse> <br>
<input type=submit value=ok>
</form>";

$usager="nomUsager";
$mdp="motDePasse";
?>
</body>
</html>

Je recois comme message d'erreur :

Warning: Missing argument 2 for authentification() in c:\program files\easyphp1-8\www\exercicepratique1.3.php on line 9
Nom d'usager ou mot de passe invalide!1

Merci!
Configuration: Windows Vista Internet Explorer 7.0

8 réponses

  1. Contributeur
    Il me emble que ce serait plutôt :

    authentification($_POST['nomUsager'] , ['motDePasse"]);

    A remplacer dans la ligne :

    echo "Bienvenue David" .authentification($_POST['nomUsager'] && ['motDePasse"]);
    1. La raison est simple. Heureusement le serveur Apache te donne des idnications pour débugger ton problème !
      "Missing arguments" : et oui, ton deuxième argument n'est pas bon.

      authentification($_POST['nomUsager'] && ['motDePasse"]);
      (Attention au " et ' 'motDePasse' ... pas 'motDePasse" !)

      La synthaxe de ta fonction authentification est :
      function authentification($usager, $mdp)

      donc c'est plutôt

      authentification($_POST['nomUsager'] , $_POST['motDePasse']);

      Un conseil si tu commences à coder :

      Soit rigoureux ! très rigoureux. (ex : " et ' )
      Présentes bien ton code, ne l'alignes pas à la verticale, il est illisible. Chaque caractère a son importance, c'est comme dans une langue. Les fautes d'orthographes ne sont pas admises ...

      Bon Courage
      1. J'ai fait les modifications tel qu'indiqué et j'ai maintenant un message d'erreur sur cette ligne (ligne 16).

        Parse error: parse error in c:\program files\easyphp1-8\www\exercicepratique1.4.php on line 16

        Voici mon code modifié,

        <html>
        <head>
        <title>exercicePratique1</title>
        </head>
        <body>

        <?php
        function authentification($usager, $mdp)
        {
        if ($usager=="david" && $mdp=="abc123")
        echo "Bienvenue david";
        else
        echo "Nom d'usager ou mot de passe invalide!";
        }
        if(isset($_POST['nomUsager'], $_POST['motDePasse'])
        echo "Bienvenue David" .authentification($_POST['nomUsager'], $_POST['motDePasse']);
        else
        echo "Veuillez vous identifier
        <form method=POST action='exercicePratique1.4.php'>
        Veuillez entrez votre nom d'usager : <input type=text name=nomUsager> <br>
        Veuillez entrez votre mot de passe : <input type=text name=motDePasse> <br>
        <input type=submit value=ok>
        </form>";

        $usager="nomUsager";
        $mdp="motDePasse";
        ?>

        </body>
        </html>

        Merci encore!
    2. merci de me donner le contenu de la ligne 16 !...
      1. ligne 16...
        echo "Bienvenue David" .authentification($_POST['nomUsager'], $_POST['motDePasse']);
    3. Salut, en fait, ce n'est pas à la ligne 16, mais à la ligne 15. Pour un parse error, il faut généralement regarder à la ligne du dessus.

      Donc dans ton cas,
      if(isset($_POST['nomUsager'], $_POST['motDePasse'])

      est à remplacer par
      if(isset($_POST['nomUsager'], $_POST['motDePasse']))


      Fait bien gaffe à fermer toutes les parenthèses, crochets et accolades.
      1. Merci Zoby! Ca fonctionne maintenant (enfin presque). Quand je valide, que la reponse soit bonne ou pas, je vois apparaitre Bonjour David.

        Ex:

        Nom usager ou mot de passe invalide retourne
        Nom d'usager ou mot de passe invalide!Bienvenue David

        Nom usager et mot de passe valide retourne
        Bienvenue David Bienvenue David

        Qu'est ce qui cause ça?

        Merci de votre aide...j'apprends plus avec vous autres qu'avec mon cours...
    4. Réfléchit un peu. Regarde à la ligne 16 et ce que tu demande à la fonction de renvoyer.
      1. infograffik :

        avant de poser tes questions, réfléchis et passe au moins 1h devant ton code ...

        ca nous évitera de jouer les apprentis prof ...

        ;-)
        1. Merci Fred_BGT et Zoby44 pour votre aide, j'ai finalement trouvé mon erreur.