Code erreur ligne 8

Résolu
Bonjour j'ai crée une fonction en PHP la voici :

function authuser($login, $pass)
{
global $db;
if (isset($_login["Honomatopic"]) && isset ($_pass["honore95"]));
{
connect();
}
else
{
echo 'échec de la connexion: ' . $e->getMessage(); return false;
}
}

authuser();

Or mon navigateur Firefox m'indique une erreur sur le "else" (ligne 8 si je ne m'abuse), et j'ai beau cherché je ne trouve pas. Pouvez-vous m'éclairer ?

7 réponses

  1. Bonjour,

    pourrais-tu donner l'erreur précise s'il te plait?
    0
    1. Firefox m'affiche :

      Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\minichat\connexion.php on line 8

      Sachant que je n'ai pas mis tout le code PHP mais seulement la fonction
      0
      1. Bonjour,

        l'erreur vient de
        if (isset($_login["Honomatopic"]) && isset ($_pass["honore95"])); 


        Il ne devrait pas y avoir de point virgule (;) à la fin.
        0
        1. Ça ne marche toujours pas et c'est même pire puisque le navigateur m'affiche :

          Warning: Missing argument 1 for authuser(), called in C:\xampp\htdocs\minichat\connexion.php on line 30 and defined in C:\xampp\htdocs\minichat\connexion.php on line 17

          Warning: Missing argument 2 for authuser(), called in C:\xampp\htdocs\minichat\connexion.php on line 30 and defined in C:\xampp\htdocs\minichat\connexion.php on line 17

          Notice: Undefined variable: e in C:\xampp\htdocs\minichat\connexion.php on line 26

          Fatal error: Call to a member function getMessage() on a non-object in C:\xampp\htdocs\minichat\connexion.php on line 26

          Mais voici l'intégralité du code PHP :

          <meta charset="utf-8" />
          <?php
          define('SQL_DSN','mysql:host=localhost;dbname=minichat');
          define('SQL_USERNAME','minichat');
          define('SQL_PASSWORD','bFG13J8ApEek');

          function connect() {
          global $db;
          try {
          $db = new PDO(SQL_DSN, SQL_USERNAME, SQL_PASSWORD);
          } catch (PDOException $e) {
          echo 'échec de la connexion: ' . $e->getMessage(); return false;
          }
          return true;
          }

          function authuser($login, $pass)
          {
          global $db;
          if (isset($_login["Honomatopic"]) && isset ($_pass["honore95"]))
          {
          connect();
          }
          else
          {
          echo 'échec de la connexion: ' . $e->getMessage(); return false;
          }
          }

          authuser();
          ?>
          0
          1. Bonjour,
            ce n'est pas pire, c'est juste que certaines variables ne sont pas définies.
            Pour commencer, merci de mettre le code entre les balises code, ça sera plus lisible.
            Ensuite, ta fonction authuser requiert les variables $login et $pass.
            Lorsque tu appelles la fonction il faut donc aussi les spécifier:
            authuser('monpseudo', 'monmotdepasse');


            Ensuite, dans la fonction connect, la variable $e était définie:
            catch (PDOException $e)

            Ce n'est pas la cas dans la fonction authuser, la variable $e n'existe pas.

            Essaye avec:

            function authuser($login, $pass) 
            { 
            global $db; 
            if (isset($_login["Honomatopic"]) && isset ($_pass["honore95"])) 
            { 
            connect(); 
            } 
            else 
            {	
            echo 'échec de la connexion: identifiants invalides'; return false; 
            } 
            } 
            
            authuser('Honomatopic', 'honore95'); 
            ?>
            0
            1. Oui ça marche merci cordialement ;)
              0
              1. Bonjour,

                si ton problème est résolu, merci de cliquer sur "Marquer comme résolu" en haut de la page.
                0