[RESOLU] Aide pour le contenu

Eléphant du PHP | 69 Messages

13 déc. 2012, 01:33

J'ai plusieurs question là ^^

1 - Où dois-je écrire ce code ? combien de fois ? sur quel page ?

2 - "pages_php" qu'est-ce que sait ? je le remplace par quoi ?

3 - Désoler de vous embêter hein !? mais j'essais vraiment de comprendre ce que j'écris dans mes pages ^^

Merci d'avance pour vos réponses.

ViPHP
xTG
ViPHP | 7331 Messages

13 déc. 2012, 07:55

Le code de la fonction est à écrire une seule fois. Le mieux est de le mettre dans un fichier qui sera inclus dans les pages l'utilisant.
pages_php est un dossier d'exemple, c'est l'endroit où seront tes fichiers PHP. Mais tu peux l'adapter à l'organisation de ton site.

Eléphant du PHP | 69 Messages

13 déc. 2012, 15:18

Ah je comprend mieux déjà.

Donc j'ai fait une autre méthode peut-elle fonctionner ?

J'ai à la racine mon fichier index.php, lui n'a rien j'ai juste une image d'intro.

Ensuite le fichier accueil.php qui lui comprend toute la structure du site.
(C'est à dire au lieu de faire des includes [banniere.php etc.] j'ai tout mi directement sur lui)

J'ai un dossier "include" dedans il y a bdd.php et fonction.php que j'include directement en haut de page sur accueil.

D'ailleurs, fonction.php j'ai une erreur :

syntax error, unexpected '[', expecting ')'
<?php
	
		if (!isset($_GET['page'])) 
		{
		
			$_GET['page'] = 'accueil';
			
		};
		
		getPage($_GET['page']);
		
	?>
Ensuite, je vais dans div contenu directement sur accueil,

j'écris la condition :
function getPage($fichier = 'news') 
{
        if( is_string($fichier) )
        { 
                if( file_exists('page/' . $fichier . '.php') )
                { 
                      include('page/' . $fichier . '.php');
                }
                else
                {
                       inlude('accueil.php');
                 }
           } 
          else
           {
                    include('accueil.php');
           }
}
(J'ai créer un dossier 'page' dedans il y a aura toutes mes pages, contact.php club.php news.php etc.)

Là je suis sur accueil, donc je met les news.

Mais à quel moment je dis que SI je suis sur accueil ALORS je met news...

La fonction je dois l'écrire une fois sur accueil ou plusieurs fois ?

Merci d'avance !

Mammouth du PHP | 702 Messages

13 déc. 2012, 15:39

mais tu n'as pas besoin de stipuler de condition...

Tu mets ton code qui génère les news dans ta page accueil... ainsi dès que tu es dessus les news seront générées et affichée.

fonction.php contient pas d'erreur.

Tu as la ligne précise ou c'est marqué?

Eléphant du PHP | 69 Messages

13 déc. 2012, 16:08

Comment sa pas de condition ? si justement oO

SI je suis sur accueil ALORS je met les news
SI je suis sur club ALORS je met les horaires

Si comment veut-tu que je fasse ?

Sinon l'erreur :

'Call to undefined function getPage()'

Ligne 11 c'est getPage($_GET...)

Mammouth du PHP | 702 Messages

13 déc. 2012, 16:11

il dit que la fonction n'est pas définie, es tu sur d'avoir bien mis la fonction dans l'include ? si ou est-ce que l'include est avant l'appel de fonction ou après ?

ViPHP
xTG
ViPHP | 7331 Messages

13 déc. 2012, 16:57

Code complet fonctionnel :

mesFonctions.php
function getPage($nomFichier = 'accueil') {
  if( is_string($nomFichier) ){ // on vérifie qu'on a bien un nom (éviter les erreurs d'appel avec une variable de type nombre, ect)
    if( file_exists('pages_php/' . $nomFichier . '.php') ){ // on vérifie que le fichier existe bien dans le dossier pages_php
      include('pages_php/' . $nomFichier . '.php'); // nous incluons le fichier
    }else{
      include('pages_php/accueil.php'); // Si le fichier $nomFichier n'existe pas tu inclues la page d'accueil
    }
  } else {
    // la variable passé en paramètre n'est pas une variable correcte
    include('pages_php/accueil.php'); // par défaut nous incluons la page d'accueil
  }
}
monIndex.php
<html>
<body>
<h1>Je suis un titre affiché sur toutes les pages.</h1>
<?php
  include('mesFonctions.php');
  if( !isSet($_GET['page']) ) // si la variable n'existe pas on assigne une valeur par défaut
    $page = 'news.php';
  else
    $page = $_GET['page'];
  getPage($page); // on charge le fichier
?>
<h1>Je suis un titre affiché sur toutes les pages.</h1>
</body>
</html>
pages_php/news.php
<h2>Je suis le fichier news</h2>
pages_php/test.php
<h2>Je suis le fichier test</h2>
Tester maintenant les trois urls suivantes pour comprendre le déroulement :
monIndex.php
monIndex.php?page=news
monIndex.php?page=test
monIndex.php?page=existepas

Mammouth du PHP | 702 Messages

13 déc. 2012, 17:01

la si tu n'y arrives pas je vois pas comment on pourra faire plus simple.

Eléphant du PHP | 69 Messages

13 déc. 2012, 17:06

J'ai mi l'include en haut de page bien avant le doctype

Mammouth du PHP | 702 Messages

13 déc. 2012, 18:24

ça fonctionne. ?

Eléphant du PHP | 69 Messages

13 déc. 2012, 19:42

Enfin niquel j'ai réussi !!!

Merci d'avoir aider jusqu'au bout.

Je ne sais comment vous remercier !!

Cordialement,

Kakou