Modifier une page HTML [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
30 août 2013
-
Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
-
Salut

Je suis entrain de concevoir un site internet qui contient pour l'instant une quatre vingtaine de page et à chaque fois j'ai des idées pour améliorer mon site donc je le change, rajoute des trucs, modifie le désigne,..
Mais je me demandais, par exemple sur mon site j'ai créé une barre de navigation qui est présente constamment sur toutes les pages de mon site, et je souhaiterais ajouter un nouveau bouton dans cette barre, jusque là rien de bien compliqué je rajoute un petit code et le tour est joué.

Mais le bouton doit être bien évidement présent dans toutes les pages du site, donc je dois modifier une par une toutes les pages, ma question est, n'y a-t-il pas un moyen de modifier une seule page et (ex la principale) et que les modifications s'effectuent sur toutes les autres ?

8 réponses

Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
101
Bonsoir,

Il me semble, à première vue, que le plus simple serait d'inclure ton menu. Je vois que tu codes en PHP, alors c'est encore plus simple.

Dans ta situation, j'aurais un fichier init.php qui contiendrait tout ce qui est utile pour toute l'application, genre :
- connexion à la base de données, s'il y en a une
- fonction d'affichage du menu, genre writeMenu()
- et autres fonctions utiles

Toutes les pages contiendraient en première ligne :
<?php
require('init.php');
// ici, initialisation des variables utiles pour la page
?>
<html>
<head>
...suite...

Le code de la fonction writeMenu() aurait pour fonction de lire un fichier texte nommé par exemple menu.txt qui contiendrait par exemple ceci :
choix1;page1.php
choix2;page2.php
choix3;page3.php
de façon à afficher le menu comme tu veux.

Quand, dans une page, tu devras écrire le menu, tu feras appel à cette fonction
<?php writeMenu(); ?>
Toutes les pages fonctionneraient ainsi. Et pour rajouter un choix de menu, il te suffira simplement de rajouter une ligne dans menu.txt :
choix4;page4.php
pour que celui-ci soit pris en compte dans les 492.000 pages :o)


Une possible ébauche de fichier init.php :

<?php
$fmenu = 'menu.txt'; // Nom du fichier contenant le menu

// ... autres initialisations et fonction

function writeMenu() {
	global $fmenu;
	$hf = fopen("$fmenu","r");
	while($ligne = trim(fgets($hf,1000))) {
		$option = explode(";", $ligne);
		echo '<a href="'.$option[1].'">'.$option[0].'</a>';
	}
}
// ... suite fichier init.php
?>
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
29 août 2013
5
Salut, peux-tu me montrer l' adresse de ton site, car à mon avis tu dois pouvoir le construire de façon de dynamique sans avoir à éditer des centaines de pages
Messages postés
7
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
30 août 2013

http://mangas-33.p.ht/Le%20monde%20de%20naruto.php

Il n y quasi rien dedans sorry, j'étais pressé de faire un teste pour le mettre en ligne et comprendre un peu le concept pour voir comment ça marche donc j'ai pris un hébergeur gratuit avec un nom de domaine banal, le site est encore en construction ^^
Messages postés
7
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
30 août 2013

Merci pour ta réponse heliconius ! :)

Donc si j'ai bien compris :

- Je met en première ligne sur toutes mes pages le code suivant : <?php
require('init.php');
?> (que veux tu dire par les variables, ex ?)

- Je crée un fichier init.php qui contient le code des éléments susceptibles d'être modifiés souvent (menu, barre de navigation,..)

- Je crée à la racine du site un fichier en txt qui contient le code de par ex le menu,..

- Une fois que je rajoute un élément au code source du menu présent ds le fichier en txt, celui ci effectuera le changement dans toutes les pages qui contiendraient la fonction <?php writeMenu(); ?> ?
Messages postés
7
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
30 août 2013

En fait j'ai trouvé, je n'aurais jamais imaginé que ça soit aussi simple :D

Les éléments susceptibles d'être souvent modifiables tel les menus, barres de navigations,... il vaut mieux créer un fichier en .php spécifique pour chaqun des éléments qui contiendra uniquement le code de ceux-ci (plus éventuellement le css)

Une fois cela fait, on peut insérer les éléments dans par exemple les pages web intitulées accueil, izi, booba, pdrg sans recopier leur code source mais avec uniquement la fonction php suivante : <?php include(NomDeLaPage.php) ?>

En gros ont introduit "un morceau de page web" qui sera affiché dans d'autres par la fonction php que j'ai cité, et ainsi lorsqu'on effectue une modification sur la page qui contient l'élément qu'on veut modifier, la modification s'effectueront sur toutes les autres pages qui contiennent la fonction php citée plus haut.

Merci à tous en tout cas ! :)
Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
101
@dark99

Il semble que tu aies bien compris la manière de procéder.

Ce que j'entends par variable ?

Il y a souvent deux manières de passer des informations à une page PHP (que nous appellerons pour l'exemple 'script.php') :

- Soit, dans une page, tu fais saisir les informations dans un formulaire que tu fais traiter par ton script :
<form name="client" method="post" action="script.php">
<input type="text" name="nom" size="20">
...
</form>

- Soit tu appelles ton script en lui passant des paramètres:
<a href="script.php?a=maj&idcli=125">Mise à jour du client</a>
Dans le premier cas, les informations seront récupérées par ton script parce qu'elles lui auront été transmises grâce à la methode POST et l'information sera disponible dans la variable $_POST["nom"]

Dans le second cas, les informations seront récupérées par ton script sur la ligne de commande. C'est la methode GET et les informations seront disponibles dans les variables $_GET["a"] et $_GET["idcli"]

Si tu passes des informations à un script, c'est que celui-ci va les utiliser. Si tu ne dois les utiliser qu'une fois, ce ne sera pas trop contraignant d'écrire une fois $_GET["idcli"]. Mais si tu dois l'écrire plusieurs fois, il vaut mieux te faciliter l'écriture, ça évitera des erreurs.

<?php
require("init.php");

// initialisation des variables
$action = 'new'; // Par défaut, ajout d'un client
$idcli  = '';    // Pas de numéro client
if(isset($_GET["a"]))     { $action = $_GET["a"];     }
if(isset($_GET["idcli"])) { $idcli  = $_GET["idcli"]; }

// Autres variables utiles dans cette page
$now = date("Y-m-d H:i:s");
...
etc
...
switch($action)
	case 'new' :
		// .... ajout client ...;
		break;
	case 'maj' :
		$requete = "UPDATE tableClient set ...='xxx', set maj='$now' where idclient='$idclient';";
		...
		break;
}
... suite ...
?>


NOTA:
Tu fais comme tu veux mais, quant à moi, je préfère utiliser la fonction require() que la fonction include(). Les deux se comportent de la même manière pour l'insertion et l'exécution de code. Mais si tu fais un require('unfichier.php') et que celui-ci n'existe pas, il y a arrêt du processus pour erreur fatale à cause du fichier requis manquant et tu le vois de suite. Dans le cas d'include() le processus ne s'arrête pas et le script demandant l'inclusion continue et tu peux, dans certains cas, te casser la tête pendant des heures parce que tu peux ne pas t'en apercevoir de suite.
Messages postés
7
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
30 août 2013

Merci pour tes éclaircissements je comprends mieux maintenant, je prendrais note de tes remarques :)
Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
101
Si tu penses que c'est bon, tu peux cocher le sujet comme "Résolu".
Bye.