Include en php pour site web [Résolu/Fermé]

Signaler
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
-
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
-
Bonjour,

Je suis sur le point de reprogrammer un site. Pour cela je voudrais utiliser les fonctions include en PHP. Mais cela me pose problème, j'aurai trois include le haut, le milieu et le bas. dans l'include du haut j'aurai un bandeau de petits drapeaux pour les langues. J'aimerai quand je clique sur un des drapeaux changer le langage de toute la page et aussi celui des includes voir même changer d'include car l'include du haut comporte une bannière d'image avec des écritures différente en fonction de la languge.

Est ce possible

Je vous remercie d'avance. Je vous mets le site en copie pour vous donner une idée: https://www.borispatagonia.com/frontiere-fragile-entre-argentine-chili

17 réponses

Messages postés
335
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
21 mars 2010
119
Salam,
Je vous propose cette astuce,
- Le fichier d'entête haut-fr.html, haut-ang.html, haut-es.html ...
- Une variable globale $langageSite (sa valeur peut être déplacé via un formualire invisible
- le clique sur le drapeau Espagnol entraine l'affectation de la valeur "es" à $langageSite, donc include "haut-".$langageSite.".html" donnera haut-es.html

Je donne cette astuce sans trop examiner les détails, et je crois que vous pouvez faire mieux
Bonne chance.
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
Merci pour cette réponse, je vais étudier cette solution dans mon code.

J'ai commencer à refaire l'index mais ça me donne une erreur dans mes includes:

if ($_GET['page'] == "/fr/qui") il n'aime pas ces lignes là j'ai essayer ceci if ($_GET['page'] == "qui") mais apparemment il ne trouve pas la page qui se troue dns un dossier /fr je ne vois pas trop l'erreur je pense qu'elle doit être simple mais je ne vois pas. J'ai mis le code entier ci dessous.
.
<?php

//page html
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Boris Patagonia</title>
<meta http-equiv="Content-Type" content="texte/html;charset=iso-8859-1" />
</head>
<body>
<div id="conteneur">
';
include "entetes/top.php";

echo'<div id="center">';

if ($_GET['page'] == "/fr/qui")
{
include("./fr/qui.php");
}

if ($_GET['page'] == '/fr/argentinechili')
{
include('./fr/argentinechili.php');
}

if ($_GET['page'] == '/fr/services')
{
include('./fr/services.php');
}
else
{
include('./fr/activites.php');
}
echo'</div>';

include "entetes/bottom.php";


echo '
</div>
</body>
</html>
';
?>
Messages postés
335
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
21 mars 2010
119
Puisque le code suivant marche :
include "entetes/top.php";
et celui là :
include("./fr/qui.php"); 
ne l'ai pas, essayer d'eliminer le point et le slash de "./fr ..."
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
C'est vraiment les lignes : if ($_GET['page'] == "/fr/qui") ; if ($_GET['page'] == 'argentinechili') ;if ($_GET['page'] == "services")

Qui pose problème les includes en dessous il ne me met pas d'erreur, j'ai tester ces trois types de codes mais il me met toujours l'erreur:

Notice: Undefined index: page in C:\Program Files\EasyPHP 3.0\www\index.php on line 18

en faite je voudrai afficher les pages des include si il trouve le mot écrit entre " " dans URL du liens que l'utilisateur vient de cliquer
Messages postés
335
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
21 mars 2010
119
Pour enlever les messages d'erreurs, suivez la procédure :
http://www.npds.org/viewtopic.php?topic=8174&forum=28

Pour "/fr/qui", ça veut dire que le dossier fr se trouve à la racine : enlever le slash.

Peut être que ça peut t'aider pour déboguer (remplacer par vos valeurs) :
<?php
if(file_exsists('themes/'.$theme.'/index.php'))
   include('themes/'.$theme.'/index.php');
else
   require('themes/default_theme/index.php');
?>

Source : https://www.php.net/manual/en/function.include.php
Messages postés
32
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
1 août 2009
8
Salut, ton problème c'est que quand tu n'as pas $_GET['page'] dans l'url, tu demande à ton code de tester $_GET['page '] mais il n'éxiste pas ^^.
Il suffit juste de tester si ta get éxiste avant, remplace : if ($_GET['page'] == "/fr/qui")
par : if (isset($_GET['page']) == "/fr/qui")
et ce pour chaque condition ;)
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
J'ai plus d'erreur MERCI!! , mais sa ne m'arrange pas que j'ai rien dans l'url car en faite je voudrai changer que mon conteneur et quand je clique sur un liens de mon include top et là il me change toute la page.
J'ai diviser mon site en 3: un include top, le conteneur et l''include bottom.

Dois je changer les liens de l'include top. Je suis avec easyPHP si au cas ou il y a des différences avec wamp

Quand je clique sur un liens mon url se présente comme ça http://127.0.0.1/fr/qui.php localhost dossier de la age et la page.
Messages postés
32
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
1 août 2009
8
Pour ce qui est de ne plus rien avoir dans l'url, si tu n'as plus rien alors tu sera dans la condition else :
else include('./fr/activites.php');

je n'ai pas bien compris la phrase suivante ^^ : "je voudrai changer que mon conteneur et quand je clique sur un liens de mon include top il me change toute la page."
Tu voudrais changer seulement ton contenu mais ?
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
Oui, ce que je cherche à faire est seulement de changer le milieu de mon site le contenu. Mon idée est de charger mes autres pages dans un include. Quand je clique sur un liens j'aimerai que la page qui est associer s'affiche dans un include entre mon top et mon bottom.
Messages postés
32
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
1 août 2009
8
J'ai compris, je ne pense pas que ce soit possible en php (je me trompe peut être), si tu ne veux pas rafraichir entierement ta page lorsque celle ci change (c'est bien ce que tu souhaite ? ^^) jette un coup d'oeil à la balise html <iframe> mais je crois qu'elle n'éxiste plus en xhtml.

Je t'ai trouvé sa : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/245253-iframe-loading
Bonne lecture ^^
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
Je connais les iframes mais c'est pas terrible pour le référencement c'est pour cela je voulais passer par des include
Messages postés
32
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
1 août 2009
8
Non je ne pense pas que ce soit possible en php désolé.
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
Bha en faite si, mais c'est pas encore top j'ai mi <a href="?page=nomdelapage.php"> dans les liens.

Voici mon code de mon top:
<?php

echo'

<ul id="menu_horizontal">
<li><a href="?page=qui.php">Qui suis je ?</a></li>
<li><a href="?page=argentinechili.php">Argentine & Chili</a></li>
<li><a href="?page=services.php">Services</a></li>
<li><a href="?page=activites.php">Activités</a></li>
<li><a href="?page=extras.php">Autres destinations</a></li>
<li><a href="?page=videos.php">Vidéos</a></li>
<li><a href="?page=temoignages.php">Témoignages</a></li>
<li><a href="?page=partenaires.php">Partenaires</a></li>
<li><a href="?page=contact.php">Contact</a></li>
</ul>

';
?>

Quand je clique sur un liens il me met bien la page dans mon include du milieu tout en gardant mon top et mon bottom le seul problème c'est que quand je clique sur un lien il me met toutes les pages de mon menu à la suite entre mon top et bottom alors que je veux qu'il affiche que le lien cliquer.

J'ai plus qu'a trouver comment afficher que le lien cliquer de mon include top et non tous les liens et c'est gagné.
Messages postés
32
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
1 août 2009
8
Je pense que ce sont tes conditions qui ne sont pas bonnes, essai de remplacer
if (isset($_GET['page']) == "/fr/qui") include("./fr/qui.php"); 
if (isset($_GET['page']) == '/fr/argentinechili') include('./fr/argentinechili.php'); 
if (isset($_GET['page']) == '/fr/services') include('./fr/services.php'); 
else include('./fr/activites.php');  

par
if (isset($_GET['page']) == "/fr/qui") include("./fr/qui.php"); 
elseif (isset($_GET['page']) == '/fr/argentinechili') include('./fr/argentinechili.php'); 
elseif (isset($_GET['page']) == '/fr/services') include('./fr/services.php'); 
else include('./fr/activites.php');  


l'idée c'est de faire :
si(condition) affiche la page a ;
sinon si(condition) affiche la page b;
.
.
.
sinon affiche la page z;
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
C'est ok ça marche, j'arrive bien à affiher mon include top, le contenue du liens et le bottom. Mainteant je vais voir comment je vis pouvor passer d'une page à l'autre car je reste bloquer sur la page afficher comme si il supprimai la parti de if et elseif par le nouveau contenu.
Messages postés
335
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
21 mars 2010
119
1 - passer le fil en résolue
2 - Ou était exactement le problème ?
Messages postés
23
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
12 août 2009
3
Le problème a été resolue par les liens dans le bottom deux réponse au dessus. Merci encore