Fatal error: Call to undefined function

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 10:52

Bonjour,

Voila, lorsque je clic sur un bouton qui doit m'enregistrer ou me supprimer un enregistrement cela m'affiche cette erreur.
Est-ce que vous connaitriez le probleme ?

merci d'avance

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 avr. 2006, 10:53

Fonction non définie...

Du code nous aiderait.

Mammouth du PHP | 19672 Messages

11 avr. 2006, 10:54

Ça veut tout simplement dire que la fonction appelée n'existe pas : probablement une faute de frappe et un appel vers une fonction dont le nom est mal orthographié.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:02

justement, j'ai bien regarder il n'y a pas de faute de frappe ou alors je l'ai voit pas

dans mon fichier fonction.inc.php :
function agentDelete($num) {
mysql_query("delete from agent_dentretien where num_pers = '$num'");
mysql_query("delete from contrat_travail where num_pers1 = '$num'");
mysql_query("delete from information where num_pers1 = '$num'");
mysql_query("delete from absence where num_pers = '$num'");
}
dans mon fichier agtentDel.php
<?php
include_once("../connexion.php");
include_once("../fonction.inc.php");
if (isset($_GET['id']))
    $mat = $_GET['id'];
else
    $mat = "";
agentDelete($mat) ;
header("Location: consult_agtent.php");
?>


pour lancer la suppression :
<a href='agtentDel.php' id="<?php echo $mat ?>" onClick="return conf()">suppr</a>
voila, peut etre que vous comprendriez mieux

merci

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:13

Ca ne répondra probablement pas à la question, mais ce n'est pas en donnant un id à une balise lien que celui-ci est transmis lorsque l'on clique sur le lien. Ceci ce contente d'appeller la page agtentDel.php sans argument :
<a href='agtentDel.php' id="<?php echo $mat ?>" onClick="return conf()">suppr</a> 
Ici $_GET['id'] ne sera pas défini

Pour passer des paramètres en GET, il faut les mettre dans l'url après un "?" (et les séparer par des "&") :
<a href="agtentDel.php?id=<?php echo $mat ?>" onClick="return conf()">suppr</a> 
Ici $_GET['id'] sera égal au $mat

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:18

ok, bon merci il y avai bien une faute d'inatention, mais cela ne regle pas le problème

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 avr. 2006, 11:25

A tout hasard...dans ta page fonction.inc.php, as-tu bien mis ta fonction entre les balise <?php et ?> ?
<?php
function agentDelete($num) { 
mysql_query("delete from agent_dentretien where num_pers = '$num'"); 
mysql_query("delete from contrat_travail where num_pers1 = '$num'"); 
mysql_query("delete from information where num_pers1 = '$num'"); 
mysql_query("delete from absence where num_pers = '$num'"); 
}
?>

Eléphant du PHP | 312 Messages

11 avr. 2006, 11:28

include_once("../connexion.php");
include_once("../fonction.inc.php");
Ton fichier principal se trouve dans un sous-répertoire de tes fichiers importés ? c'est bizarre comme organisation...

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:31

je vous a i donnée l'exemple de la suppression, mais par exemple l'ajout (ça me donne bien sur la meme chose)

sur la fenetre d'ajout :
la fonction :

function validate(enreg) {
    val1 = document.enreg.nom.value;
    while('' + val1.charAt(0)==' ')
        val1 = val1.substring(1, val1.length);
    if (val1 == "") {
        alert("Veuillez saisir le nom de l'agent d'entretien.");
        document.enreg.nom.focus();
        return false;
    }
}
le form :
<form name="enreg" onSubmit="return validate(this)" method="post" action="agtentAdd.php">
le bouton :
   <input name="enreg" type="submit" id="enreg" value="sauvegarde">
le fenetre agtentAdd.php :
<?php
include_once("../connexion.php");
include_once("../fonction.inc.php");
if (isset($HTTP_POST_VARS["nom"]))
    $nom = $HTTP_POST_VARS["nom"];
else
    $nom = "";
if (isset($HTTP_POST_VARS["nat"]))
    $nation = $HTTP_POST_VARS["nat"];
else
    $nation = "";
agententAdd($nom, $nation);
header("Location: rech_agtent.php");
?> 
et ma fonction :
function agententAdd($nom,$nation) {
    mysql_query("insert into agent_dentretien(num_pers, nom_pers, nationalite) values('', '$nom',  '$nation')");
}

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 avr. 2006, 11:34

A tout hasard...dans ta page fonction.inc.php, as-tu bien mis ta fonction entre les balise <?php et ?> ?
<?php
function agentDelete($num) { 
mysql_query("delete from agent_dentretien where num_pers = '$num'"); 
mysql_query("delete from contrat_travail where num_pers1 = '$num'"); 
mysql_query("delete from information where num_pers1 = '$num'"); 
mysql_query("delete from absence where num_pers = '$num'"); 
}
?>
:arrow: ?

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:34

j'ai bien mis les balise php dans mon fichier qui repertorie les fonctions

Pour ce qui est de l'organisation, j'ai mes fichier menu, connexion, fonction.... puis des dossier en fonction des domaines auquel il porte.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 avr. 2006, 11:41

Si tu intègres directement ta fonction dans la page au lieu de faire appel à elle avec un include_once, tu as quoi comme résultat ? Toujours pareil ou ça fonctionne ? Si ça fonctionne c'est ton URL qui n'est pas bon, donc ton arbo.
<?php 
include_once("../connexion.php"); 

function agentDelete($num) { 
mysql_query("delete from agent_dentretien where num_pers = '$num'"); 
mysql_query("delete from contrat_travail where num_pers1 = '$num'"); 
mysql_query("delete from information where num_pers1 = '$num'"); 
mysql_query("delete from absence where num_pers = '$num'"); 
}

if (isset($_GET['id'])) 
$mat = $_GET['id']; 
else 
$mat = ""; 
agentDelete($mat) ; 
header("Location: consult_agtent.php"); 
?> 

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 11:52

bon le probleme est reglé, enfin ça ne marche toujours pas mais j'ai plu l'affichage. Par rapport au code que je vous ai mi, vous avez une idée pourquoi ça ne supprime pas ou n'enregistre pas ?
Maintenant ça m'envoi bien sur la fenetre que j'avai demandé mais ça n'a rien changé au enregistrement.

Par contre pour tout a l'heure, je n'ai pas la moindre idée sur la façon dont ça c réglé. Car j'ai rien changé de spéciale.

Merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 avr. 2006, 12:06

Il faudrait que tu nous répondes....tu t'auto réponds lol on ne peut pas t'être très utile comme ça. Dis nous si ce qu'on te dit te donne quelque chose ou pas.

Ensuite si tu fais des tests de ton côté et que tu vois des différences, dis nous ce que tu as fait.

Invité
Invité n'ayant pas de compte PHPfrance

11 avr. 2006, 13:31

ba en faite, ça me met plus le message d'erreur, mais je ne sais pas se que j'ai fait, car le temps que je lise votre message, j'ai fait plein de petit changement mais sans importance, ça devait etre une toute petite connerie. Donc j'ai pas eu besoin de faire se que vous m'aviez dit. Enfin, je l'ai fait quand même, au cas ou ça aurai réglé mon problème actuelle. Mais non, ça m'envoi bien sur la fenetre que j'avai demandé mais aucun changement n'est effectué sur les enregistrements(pas de suppression, ni d'insert).