8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je souhaiterais un peu d'aide concernant un site que je développe actuellement.

Sur ma page index.php je fais appel un trois include :

Controllers.php ( contient mes fonctions php )
Header.php ( contient le header de mon site avec un menu )
et Footer.php ( contient le bas de ma page )

Dans ma page header je souhaite faire appel à une fonction présent dans Controllers.php

Je fais donc comme cela :
<?php active('/index.php'); ?>

Cependant je reçois une erreur : Call to undefined function active() .

Pouvez-vous m'aider ?

Merci d'avance.

Cordialement.
Modifié par Chouchou (10 Oct 2016 - 09:58)
Modérateur
Bonjour,

Ton appel à la fonctions se trouve-t-il après le include du fichier qui contient la fonction ?
_laurent a écrit :
Bonjour,

Ton appel à la fonctions se trouve-t-il après le include du fichier qui contient la fonction ?


Bonjour,

Exactement.


<?php
require('include/controllers.php');
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0" />
<meta name="format-detection" content="telephone=no" />
</head>
<body>
<?php include(''.$lien.'include/header.php'); ?>
</body>
</html>


dans mon fichier controller.php :


	function active($url){
  		if ($_SERVER["PHP_SELF"] == $url){
    		echo 'class="active"';
  		}
	}


et dans mon fichier header.php


<nav class="menulist">
<ul>
<li><a href="#" <?php active('/index.php'); ?>>Accueil</a></li><!--
--><li><a href="#">Services</a></li><!--
--><li><a href="#">Tarifs</a></li><!--
--><li><a href="#">Devis</a></li><!--
--><li><a href="#">Localisation</a></li>
</ul>
</nav>
Modérateur
Étrange. Et du coup es-tu sur que controllers.php est bien appelé ? Un echo "test"; te le dira assez vite.

Si oui, quand tu mets le contenu de header.php à la place du include de header.php est-ce que cela marche ?
Modifié par _laurent (10 Oct 2016 - 10:31)
pourquoi ton controller tu l'inclus pas dans ton header directement ?

sinon, concernant le vrai problème... j'avoue ne pas comprendre pourquoi.
_laurent a écrit :
Étrange. Et du coup es-tu sur que controllers.php est bien appelé ? Un echo "test"; te le dira assez vite.

Si oui, quand tu mets le contenu de header.php à la place du include de header.php est-ce que cela marche ?


Ça marche très bien Smiley smile
J'ai effectué le test du echo et cela marche très bien.
J'ai modifié le contenu de la page header.php et je l'ai inclus directement sur la page index.php et cela marche très bien.
JENCAL a écrit :
pourquoi ton controller tu l'inclus pas dans ton header directement ?

sinon, concernant le vrai problème... j'avoue ne pas comprendre pourquoi.


Bonjour,

Effectivement j'y ai pensé et cela marche bien cependant $_SERVER["PHP_SELF" me retour la page header.php et non la page index.php.

Oui étrange comme problème Smiley rolleyes
Je viens de modifier la ligne :

<?php include(''.$lien.'include/header.php'); ?>

Par :

<?php include('include/header.php'); ?>


et maintenant ça marche Smiley decu

C'est une erreur : <?php include(''.$lien.'include/header.php'); ?> ?
_laurent a écrit :
Et bien ça dépend de ce qu'il y a dans $lien... pourquoi tu as mis $lien ?


j'imagine que le liens est correct, mais je sens l'oublie du "/" à la fin.