Problème fonction PHP

Résolu
Hello!

Je suis en plein dégeugage de mon application web et je bloque sur un élément. Lorsque je valide le formulaire, le fichier "Form.php" appelle une fonction php Ajouter du fichier "MySQL.php". Le résultat sur l'écran est le suivant, donc après validation du formulaire:

---------------------------------------------------------------
( ! ) Fatal error: Cannot redeclare ExtraireListe() (previously declared in C:\wamp\www\NinP\MySQL.php:32) in C:\wamp\www\NinP\MySQL.php on line 61
Call Stack
# Time Memory Function Location
1 0.0009 298424 {main}( ) ..\Form2.php:0

---------------------------------------------------------------

Voici mon code lié à cette erreur:

function salut($table, $OF, $Concerne){

$base = mysqli_connect("localhost", "root", "", "defaut") or die("Erreur de connection à la base de données");
mysqli_query($base,"SET NAMES UTF8");
  
$IDnom = mysqli_query($base, 'SELECT noms.ID FROM `noms` WHERE noms.NomPrenom = '.$_POST['nom'].'');
  
$query = mysqli_query($base, "INSERT INTO `problemes` 
(`IDcontrole`, `OF`, `Article`, `Rebuts`, `PiecesBonnes`, `Machine`, 
  `Matiere`, `Concerne`, `Commentaire`, `Date`) 
  VALUES (
  ".$IDnom.", 
  '".$OF."', 
  '".$_POST['article']."', 
  '".$_POST['rebuts']."', 
  '".$_POST['pb']."', 
  '".$_POST['machine']."',
  '".$_POST['matiere']."',
  '".$Concerne."', 
  '".$_POST['commentaire']."', 
  '".$_POST['date']."'')");
  
  
  if($query != false){
   echo('<script>alert("Saisie validée");</script>');
   return true;
  }
  else{
   echo('<script>alert("Saisie erronée");</script>');
  }
 }


Est-ce quelqu'un pourrait m'aider dans cette tâche?

2 réponses

  1. Bah, comme l'erreur l'indique, tu déclares deux fois la même fonction ExtraireListe().
    C'est peut-être parce que tu includes deux fois le fichier que la déclare.
    1. Yep, je me suis mal exprimé. Cette erreur correspond au moment ou j'avais mis le fonction "salut" en commentaire, autrement le message aurait mis "2x la même fonction salut"

      Donc l'erreur donne ça finalement :

      Fatal error: Cannot redeclare salut() (previously declared in C:\wamp\www\NinP\MySQL.php:2) in C:\wamp\www\NinP\MySQL.php on line 31
      Call Stack
      # Time Memory Function Location
      1 0.0020 298424 {main}( ) ..\Form2.php:0
  2. Modérateur
    Bonjour,


    Donc l'erreur donne ça finalement :

    Fatal error: Cannot redeclare salut() (previously declared in C:\wamp\www\NinP\MySQL.php:2) in C:\wamp\www\NinP\MySQL.php on line 31

    Et donc... comme dis précédemment.. le message d'erreur est clair !
    Tu déclare cette fonction plusieurs fois ....
    Pour que l'on puisse t'aider il faut que tu nous montres Où tu appelles ce script dans ton code .....
    (peut être via un INCLUDE non ?? )
    1. Voilé voilà

      //Le fichier head.php contient un include du MySQL.php
      include('head.php');
      
      /***********************************************
      ****************** APPEL SQL *************
      ***********************************************/
      //Erreur est déclaré puis initialisé à false au début du fichier. Lorsqu'une erreur est //détectée dans la gestion d'erreur, il se met à true
      if($berreur == false){
          salut('problemes', $OF, $Concerne);
      }	
      
      
    2. Ok, ne sais pas pourquoi, mais ça marche :D

      J'ai fait des CTRL + Z, remis l'encodage en UTF8 CTRL + Y et ça marche... Cool!
    3. Déclarer une fonction, c'est la définir avec function(){}, pas l'appeler. On ne déclare qu'une fois, on peut appeler plusieurs fois.