Problème fonction PHP

Résolu/Fermé
M_Tufux Messages postés 70 Date d'inscription dimanche 11 octobre 2015 Statut Membre Dernière intervention 6 juin 2017 - Modifié par M_Tufux le 25/02/2016 à 09:46
Ereohalm Messages postés 147 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 23 janvier 2017 - 26 févr. 2016 à 11:19
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

Ereohalm Messages postés 147 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 23 janvier 2017 17
25 févr. 2016 à 10:16
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.
0
M_Tufux Messages postés 70 Date d'inscription dimanche 11 octobre 2015 Statut Membre Dernière intervention 6 juin 2017
Modifié par M_Tufux le 25/02/2016 à 10:26
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
0
jordane45 Messages postés 36596 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2022 4 420
25 févr. 2016 à 10:30
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 ?? )
0
M_Tufux Messages postés 70 Date d'inscription dimanche 11 octobre 2015 Statut Membre Dernière intervention 6 juin 2017
25 févr. 2016 à 10:38
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);
}	

0
M_Tufux Messages postés 70 Date d'inscription dimanche 11 octobre 2015 Statut Membre Dernière intervention 6 juin 2017
25 févr. 2016 à 10:46
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!
0
Ereohalm Messages postés 147 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 23 janvier 2017 17
26 févr. 2016 à 11:19
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.
0