Modifier une page HTML

Résolu/Fermé
dark99 Messages postés 7 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 30 août 2013 - 29 août 2013 à 20:14
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 1 sept. 2013 à 19:14
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 ?
A voir également:

8 réponses

heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
30 août 2013 à 00:14
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
BadGiirlZ Messages postés 8 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 29 août 2013 6
29 août 2013 à 20:23
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
0
dark99 Messages postés 7 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 30 août 2013
29 août 2013 à 23:30
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 ^^
0
dark99 Messages postés 7 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 30 août 2013
30 août 2013 à 00:54
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(); ?> ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dark99 Messages postés 7 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 30 août 2013
Modifié par dark99 le 30/08/2013 à 03:05
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 ! :)
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
30 août 2013 à 11:44
@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.
0
dark99 Messages postés 7 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 30 août 2013
30 août 2013 à 18:40
Merci pour tes éclaircissements je comprends mieux maintenant, je prendrais note de tes remarques :)
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
1 sept. 2013 à 19:14
Si tu penses que c'est bon, tu peux cocher le sujet comme "Résolu".
Bye.
0