Faire et Utiliser une fonction

Signaler
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
Messages postés
6
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2009
-
Bonjour, j'ai écrit une fonction.
j'espere ne pas avoir fait de boulette.
mais le pb et que je n'arrive pas a l'utiliser.
que je l'appel, ma page reste blanche.

voici ma fonction :

/*** Fonction affichage message validation ***/
function alerteok()
{



global $alerte ;



$html= '
<style type="text/css">
.validtxt { font-family: Verdana; font-style: normal; font-size: 10px; text-decoration: none; text-align: left; }
.top_ok { border-top: 1px solid #009900; }
.right_ok { border-right: 1px solid #009900; }
.left_ok { border-left: 1px solid #009900; }
.bottom_ok { border-bottom: 1px solid #009900; }
</style>




  ----

   ,
   ,
   ,
  
  ----

   ,
   ,
   ,
   ,
   ' . $alerte . ',
   ,
  
  ----

   ,
   ,
   ,
  

';   
  return $html;
}







et voici ce que je met dans mon code.

    $alerte = '
Mon message qui va bien
'."\n";
    alerteok($alerte) ;

Ou m suis je trompé ?

12 réponses

Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

ok j'ai trouvé, faut mettre un echo devant la fonction et enlever le $alerte dans les parentaises de la fonction.
quel boulet.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut Chrisrobal,

J'émets un gros doute sur l'utilité de cette fonction. Pourquoi ne pas mettre le code HTML en dur dans la page ? A utiliser inutilement des ressources ?

Cordialement,

Kohntark -
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

Bah en fait cela me sert a afficher un message a la validation d'un formulaire.
et pour ne pas copier 200 foi le code, je me suis dit qu'une fonction était la plus simple. En plus cela alége mes pages
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010

Salut,
Le but d'une fonction est exactement de ne pas réécrire le même code plusieurs fois donc tu as tout à fait raison ;)
Par contre pour passer un argument à une fonction n'utilise pas global, utilise des arguments
function alerteok($alerte = ''){echo $alerte;} par exemple.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

Bonjour,
juste pour ma culture perso, quel est la différence entre Global et les Argument
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

Ça se discute tout de même. Utiliser une fonction pour faire un simple echo de code HTML avec une seule variable, sauf à y faire appel très fréquemment dans le site (ce qui est peut être le cas ici), je ne suis pas pour. Vous allez me dire qu'il est aussi plus facile de modifier la mise en forme en ne touchant qu'à la fonction, mais le plus simple reste encore d'intégrer le style à la feuille css du site et de remplacer le tableau par des div.

Mais bon, ça relève plus des goûts et des couleurs qu'autre chose.

Kohntark-
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

Tu as tt a fait raison pour le CSS.
Comme c'est en phase de test j'ai préféré tt mettre dans la fonction pour être sur du résultat ensuite je l'intégrerais dans la feuille de style.
Certe il y a q'une variable dans la fonction, mais en amont il y a bien d'autre variable $alerte qui sont enregistré dans un array puis afficher dans ce tableau.
En faite quand j'ai posté ma demande pour les exemple j'ai fait au plus cours pour ne pas rentrée dans les détails c'est pour ca qu'il n'y a qu'une simple variable
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Ce qui est le plus discutable à mes yeux... c'est le global...
global c'est le mal incarné
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

d'ou ma question :
Bonjour, juste pour ma culture perso, quel est la différence entre Global et les Argument
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

La portée d'une fonction est limitée à elle-même, ce qui veut dire qu'elle ne peut pas voir les variables déclarées en dehors d'elle-même.
$global donne à une variable une portée globale : elle peut alors être vu au sein d'une fonction, même si elle a été déclarée à l'extérieur.
Un argument est la copie d'une variable, passée à une fonction. Si la fonction affecte la variable, elle n'affecte que la copie, pas la variable de départ, à moins de la passer explicitement par référence.
Je ne vois pas en quoi global est le mal incarné, cher Alex, si on sait ce que l'on fait avec...malheureusement, peu le savent généralement.

Vu ton code, tu aurais aussi bien pu  sortir ton html dans un fichier d'inclusion purement HTML, et l'utiliser comme du templating. Moi aussi, je suis plus "choqué" (le mot est fort quand même :-)) par le fait de voir une fonction renvoyant bêtement du html avec 1 variable dedans, que par le global.

fichier tpl.html:
<style type="text/css">
.validtxt { font-family: Verdana; font-style: normal; font-size: 10px; text-decoration: none; text-align: left; }
.top_ok { border-top: 1px solid #009900; }
.right_ok { border-right: 1px solid #009900; }
.left_ok { border-left: 1px solid #009900; }
.bottom_ok { border-bottom: 1px solid #009900; }
</style>  ----

   ,
   ,
   ,
  
  ----

   ,
   ,
   ,
   ,
   {__ALERTE__},
   ,
  
  ----

   ,
   ,
   ,
  

fichier x.php :
echo str_replace('{__ALERTE__}', $alerte, file_get_contents('tpl.html'));

par exemple. Ou mettre ce html dans une constante et utiliser le même principe de remplacement. Chais pas, il y a mille façons de faire.
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

J'aime bien cette méthode.
Petite question, l'appel au template, peut il se faire autrement que par
http://www.monsite.com/xxx/xxx/tpl.html
?

j'ai testé /xxx/xxx/tpl.html, mais ca ne fonctionne pas ?
Messages postés
6
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2009

<html>
<head>
<title>galsen developpeur</title>
</head>

<?php
function alerteok()
{

global $alerte ;

$html= '<style type="text/css">
.validtxt { font-family: Verdana; font-style: normal; font-size: 10px; text-decoration: none; text-align: left; }
.top_ok { border-top: 1px solid #009900; }
.right_ok { border-right: 1px solid #009900; }
.left_ok { border-left: 1px solid #009900; }
.bottom_ok { border-bottom: 1px solid #009900; }
</style>

,
,
,

----

,
,
,
,
' . $alerte . ',
,

----

,
,

';
return $html;
}
$alerte = '
Mon message qui va bien
'."\n";
//il fallait ajouté cette ligne pour résoudre ton problème merci et bon journnée
echo alerteok($alerte);
?>

</html>

Produire du code et non des théories. Merci

galsen developpeur (mdmerveille)