Navigation : Forums > Forum Général > Fonctions

Pages : 1 Poster un nouveau sujet Ajouter un message
Auteur Message
anthony

Messages : 56
Inscrit le : 11/05/2002
Posté le 10/06/2003 à 16:57:23 Message N°1 #
Bonjour,
encore moi ;-)
j'essais en vain d'utiliser les fonctions car le programme me dit toujours cannot redeclare ma_fonction()
Voici mon code de index.php :
[code]<?
include("includes/functions.php");
header();
footer();
?>
Profil Citer
anthony

Messages : 56
Inscrit le : 11/05/2002
Posté le 10/06/2003 à 16:58:35 Message N°2 #
le message a été coupé.
Voic le code de functions.php :
[code]<?
function connect() {
if(!$bd = mysql_connect($host, $user, $password)) :
echo "Connexion a la base donnees impossible";
else :
mysql_select($base, $bd);
endif;
}
function head () {
?>
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<? include("includes/functions.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Douville Fermetures</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<?
}

function footer() {
echo "</body></html>";
}
?>
Profil Citer
loranger

Messages : 392
Inscrit le : 04/04/2002
Posté le 10/06/2003 à 17:47:07 Message N°3 #
heu...

où est le code de ma_fonction() ?

Tu as vu que dans functions.php, dans la fonction head, tu as un second appel vers functions.php ?
Ce qui a surement pour effet de déclarer deux fois ma_fonction(), or il ne peut pas...

d'ailleurs, la fonction head(), elle m'a l'air un peu bancale...

Voilà mon humble contribution :
function head () {
$out = '<?xml version="1.0" encoding="iso-8859-1"?>'."n";
$out .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."n";
$out .= '<html xmlns="http://www.w3.org/1999/xhtml">'."n";
$out .= '<head>'."n";
$out .= '<title>Douville Fermetures</title>'."n";
$out .= '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'."n";
$out .= '</head>'."nn";
$out .= '<body>'."n";

return $out;
}
[/quote]

et du coup, tu affiche ton header en faisant
[quote]echo head();


Cela dit, faire une fonction pour afficher du html sans aucune condition ni variables, etc... c pas ce qu'il y a de mieux en terme de ressources, mais bon.

bonus : si tu veux afficher du code sur ce forum, n'oublies pas de re-cliquer sur Code une fois que tu as tout tapé.
Profil Citer
anthony

Messages : 56
Inscrit le : 11/05/2002
Posté le 11/06/2003 à 15:09:12 Message N°4 #
Merci encore loranger !
Je sais que ce n'est pas ce qui a de plus malin mais le code ne va pas rester en cet état.
Je vois si ça marche comme ça et je continue progressivement.

Pourquoi head() n'est pas retourné comme une fonction ?
Et comment faire pour pouvoir mettre
head("Douville fermetures");
au lieu de mettre le titre dans mon fichier de fonctions.
C'est mieux si je peux changer l'argument selon la page non ?
Profil Citer
loranger

Messages : 392
Inscrit le : 04/04/2002
Posté le 11/06/2003 à 16:15:49 Message N°5 #
Bah de rien.
=)

head est une fonction, et est retournée en tant que telle. Le truc c'est que plutôt que de faire le echo tout de suite, je stocke tout le header dans une variable et je return la variable ce qui fait que ce n'est pas parce que tu appeles la fonction head() que son contenu sera affiché à cet endroit.

Exemple :
<?php
include('functions.php');
$html_header = head();

if(.....){ //Différentes conditions
... // Settage de cookie, etc...
}

//Envoi de la page au client
echo $html_header;
echo $contenu_page;
echo $footer;
?>
[/quote]
C'est simplement plus propre, et puis ça t'évite les erreurs de "Headers already sent"...

Pour le coup des variables a passer à ta fonction, je te donne un exemple, à toi de l'adapter :
function salut($nom='', $prenom=''){
if(!$nom && !$prenom){
$who = 'Sombre inconnu';
}else{
$who = ucfirst($prenom).' '.ucfirst($nom);
}
return 'Bonjour '.$who;
}

[quote]echo salut('larand', 'anthony');


Hop !
Au boulot
Profil Citer
maverick

maverick

Messages : 619
Inscrit le : 04/04/2002
Posté le 11/06/2003 à 18:30:13 Message N°6 #
Loranger, forum killer today...
Suffit que je sois pas là une journée pour que tu me piques ma place :-)
____________________
image
Profil Citer

Navigation : Forums > Forum Général > Fonctions

Pages : 1 Poster un nouveau sujet Ajouter un message


Se rendre directement sur le forum :