Problème pour création de fonction - PHP - Programmation
Marsh Posté le 06-12-2005 à 15:52:29
C'est ce que j'essaye de faire.
Je déclare ma fonction avec ces deux paramètres.
Mais c'est après que je bloque, soit elle retourne tout le temps false soit l'inverse ...
Ce que je voudrais c'est un exemple à partir de ce problème, par la suite je pourrais l'adapter au reste de mes scripts ...
Bref j'en suis toujours au même stade
Marsh Posté le 06-12-2005 à 16:00:39
Tu mets tout ce code dans une fonction, à la ligne 14 "return true;" et à la ligne 22 "return false;".
Marsh Posté le 06-12-2005 à 16:13:51
Ok, alors dans ce cas je dois foiré dans ma déclaration de variables.
Je m'explique, j'airais plusieur date à contrôler. Par conséquent je voudrais écrire :
Code :
|
Par conséquent quand je créé ma fonction je met :
Code :
|
et la ca bloque, ca marche plus Et je me demande aussi si c'est possible d'attende deux réponse d'une fonction. Ici dans un premier temps si c'est pas que des chiffres, puis si la date est valide.
Pourtant il me semble que j'intègre bien les paramètres en mettant '.$param.' ...
Marsh Posté le 06-12-2005 à 16:19:29
Ha oui, là y a une "petite" erreur.
A la ligne 2 tu ne dois pas écrire :
if ($_POST["'.$champ.'JJ"] != "jj" )
Mais, simplement :
if ($champ['JJ'] != "jj" )
$champ et $infos deviennent, dans la fonction, des variables tout ce qu'il y a de plus banales !
Marsh Posté le 06-12-2005 à 16:23:01
Ah ... bah voila mon petit problème au niveau des fonctions !
Merci beaucoup pour cette rectification, je teste de suite ...
Marsh Posté le 06-12-2005 à 17:00:23
Bon pour finir ca bloque encore ...
Voila le début de ma fonction :
Code :
|
Je l'appel pour cette ligne :
Code :
|
Et ca marque rien. Si je met return = false je ne sais pas comment m'en servir. Alors j'ai essayé de remplacer $mess... par $control1 == false. Dans ce cas c'est toujours faut. J'ai mis 4 variables pour l'instant mais j'aimerais avoir juste à mettre le champ du nom du formulaire qui prendrais soit champJJ / champMM / champAA.
Bref, pas top ma fonction lol
Marsh Posté le 06-12-2005 à 17:22:10
La syntaxe c'est :
return false;
Et pas :
return = false;
!
Marsh Posté le 08-12-2005 à 15:26:24
Me revoila sur ce problème de fonction !
Bon, maintenant j'arrive à faire fonctionner cette fonction
Celle-ci est mise en include dans ma page de validation pour mon formulaire. Mon problème est maintenant de pouvoir récupérer les variables que j'ai dedans pour les envoyer à la bd (mysql). J'arrive à faire une requette à partir de la fonction, mais je préfèrerais récupérer la variable $date dans ma page de validation, et ce pour pouvoir l'intégrer dans ma requette générale.
Voici ma fonction :
Code :
|
Je pense qu'il doit y avoir une certaine syntaxe mais j'ai pas encore trouvé sur google. J'avais aussi un champ sur ma page réservé au érreurs, mais si au lieu de mettre echo 'erreur ...' je met $mess = '...' je n'est aucuns message car la variable $mess ne sort pas de la fonction.
Merci d'avance
Marsh Posté le 08-12-2005 à 16:12:42
Heu ... j'viens d'essayer mais toujours rien
Bon déja j'ai du remplacer les elseif par des if pour le control des mois + années. Suite à cette modification, si je marque echo $date; en dessous de "$date = $JJ . $MM . $AA;" ca me renvoie bien la date avec les zéros.
Pour ce qu'il y est de return $date;, je le met ou? J'ai essayé de le mettre en dessous de $date = ... mais ca marche pas. J'ai testé inepu de partout mais ca marche pas
Marsh Posté le 08-12-2005 à 16:43:05
mc_cut_killer a écrit : Heu ... j'viens d'essayer mais toujours rien |
Pour poser des questions, essaye de te détacher de ton problème particulier, sinon on fait que du debugage, c pas très interessant.
Ce que tu veux savoir c'est comment une fonction peut renvoyer des informations ?
Avec return : http://fr2.php.net/manual/fr/funct [...] values.php
Marsh Posté le 08-12-2005 à 16:51:53
Ouais, c'est vrai que j'bloque inpeu trop dessus le problème ...
J'viens de commencer à lire ton lien. Mais c'est pas tout à fait mon cas.
Enfin j'vais essayer d'adapter cette technique, mais pour l'instant rien de bon ... Ca j'avais compris, mais moi ce n'est pas un calcul c'est juste pour récupérer la dernière variable.
Marsh Posté le 08-12-2005 à 17:08:34
Si ça peut t'aider à comprendre :
Code :
|
Affichera : 2005-10-17
echo "salut" ne sera jamais exécuté, car return marque la fin de la fonction.
Par contre :
Code :
|
Affichera : salut !
La condition 0 == 1 est fausse, donc return n'est pas appelé.
Marsh Posté le 09-12-2005 à 08:40:27
Ca y est j'y arrive ! Désolé de ne pas avoir répondu hier, mais effectivement ca m'a pas mal aidé. Mon problème venait du fait que je mettais :
Code :
|
Au lieu de mettre :
Code :
|
Encore merci pour ton aide , et @bientôt
Marsh Posté le 06-12-2005 à 15:04:41
Bonjour,
cela fait maintenant quelques mois que je programme sous php. Au fil du temps je me suis rendu compte qu'il serait bien plus efficace de travailler avec des fonctions ... seulement même en lisant des aides je n'arrive pas à les mettre en place
Voici un bout de code que j'utilise pour vérifier le format de la date. Je l'ai volontairement coupé en trois cases dans le formulaire jj / mm / aa.
Par ce petit script je control d'abord que la date est composée que de chiffres si le champ à été rempli, puis si c'est le cas j'utilise la fonction checkdate pour controler une seconde fois cette date.
J'aurais aimez savoir comment réaliser une fonction avec comme paramètres $champ par exemple qui remplacerais tout ce qui se trouve avant JJ / MM / AA (ici date_dernier_inventaire). Puis un second paramètre si possible $DESC pour le message d'érreur, qui serait ici : "du dernier inventaire".
Il faudrais donc que la fonction retourne deux valeurs si j'ai bien compris, une pour dire si la syntaxe de la date et correcte puis une autre pour dire si la date est valide...
Voila, si quelqu'un peut me filer un coup de main ça serait bien cool