Toujours le chiffre 1 qui s'affiche

Mammouth du PHP | 1910 Messages

25 janv. 2023, 17:12

Montre nous du code et le nom que tu a donné au fichier, on te dira (si on trouve) ce qui ne va pas.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Eléphanteau du PHP | 49 Messages

26 janv. 2023, 10:35

Bonjour,

Comme le montre la capture, la structure du site à venir est bien.
http://qi98.free.fr/images/temp/Image6.jpg

Au niveau architecture, le mélange html/php, fonctionne, mais, il y a toujours un "mais", surtout pour moi, si je clique sur le lien (cf: capture), je perds tout (index, entete, nav,conteneur, pied de page.
Donc, il faudrait tout refaire uniquement pour 1 page, impensable !
Donc, j'ai essayé d'en revenir comme je voulais faire au départ !

J'ai essayé pour les liens faire le script comme au début, mais ça ne va pas !
<?php
$pages = [
	"accueil" => [
		"titre" => "Accueil",
	],
	"apropos" => [
		"titre" => "A propos",
	],
	"contact" => [
		"titre" => "Contact",
	],
];
if (	!isset($_GET["page"])
	||	!isset($pages[$_GET["page"]])
) {
	$code_page_par_defaut = "accueil"; // page par défaut
} else {
	$code_page_par_defaut= $_GET["page"];
}
$informations_page = $pages[$code_page_par_defaut];
?>
<!DOCTYPE html>
(...)[
<nav>	
	<?php foreach ($pages as $code_page => $tab_page) {?>
		<a href="?page=<?php echo htmlspecialchars($code_page);?>&nbsp; | &nbsp;">
		<?php echo htmlspecialchars($tab_page["titre"]);?></a>
	<?php }?>
</nav>
<!-- ----- Conteneur des pages html ----- -->
	<div id="conteneur_page">
		<?php require "contenu/$code_page_par_defaut.php";?>
	</div>
(...)
Franchement, je trouve que l'implantation des liens est très moche et pas moyen de formater avec du css.
http://qi98.free.fr/images/temp/Image7.jpg
Et en plus, je n'arrive pas à faire fonctionner efficacement ce script... tellement c'est mal fait.

Je pense que ce serait mieux à faire comme ça car il n'y aurait de la page appelée à formater, et je garderais le style de toute la page.
Je préfère ça car si je fais le lien directement par "a href", il me faudrait reprendre complètement la page d'acueil (index.php), et c'est assez fastidieux.
Je l'ai déjà fait et c'est pas de la tarte, beaucoup de trop de contraintes.

Si tu as une idée qui pourrait appeler une page depuis index.php, pour que ça devienne un peu comme ça (lien inexistant) "http://monsite.free.fr/index.php?page=2&id=Contact", ce serait super.

Merci d'avance.

Avatar du membre
Eléphanteau du PHP | 49 Messages

26 janv. 2023, 13:18

Montre nous du code et le nom que tu a donné au fichier[, on te dira (si on trouve) ce qui ne va pas.
Le nom est simple, c'est index.php, et voici son code complet !
<?php
$pages = [
	"contenu/accueil" => [
		"titre" => "Accueil",
	],
	"contenu/apropos" => [
		"titre" => "A propos",
	],
	"contenu/contact" => [
		"titre" => "Contact",
	],
];
if (	!isset($_GET["page"])
	||	!isset($pages[$_GET["page"]])
) {
	$code_page_par_defaut = "accueil"; // page par défaut
} else {
	$code_page_par_defaut= $_GET["page"];
}
$informations_page = $pages[$code_page_par_defaut];
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
	<meta charset="UTF-8"/>
	<link rel="stylesheet" href="style.css">	
	<link rel="stylesheet" href="entete_inc.css">	
	<link rel="stylesheet" href="pied_inc.css">	
</head>

<body>

<header>
<div>
	<?php include("entete_inc.php"); ?> 
</div>
</header>

<nav>
	<?php include("menu_inc.php"); ?> 
</nav>

<div id="conteneur">Conteneur 
	<?php require "contenu/$code_page_par_defaut.php";?>


	<section> Section </section>	

	<article> Article </article>

	<aside> Aside </aside>

</div>

<footer>
	<?php include("pied_inc.php"); ?> 
</footer>

</body>
</html>
Puis menu_inc.php et son code
<?php
echo '<span class="centre">Menus du site</span>';
/*
echo '<ul class="nav">';
echo '<li><a href="#">Lien1</a></li>';
echo '<li><a href="#">Lien2</a></li>';
echo '<li><a href="#">Lien3</a></li>';
echo '<li><a href="#">Lien4</a></li>';
echo '</ul>';
*/
?>
	<?php foreach ($pages as $code_page => $tab_page) {?>
		<a href="?page=<?php echo htmlspecialchars($code_page);?>&nbsp; | &nbsp;">
		<?php echo htmlspecialchars($tab_page["titre"]);?></a>
	<?php }?>
J'espère que c'est bien cela que tu voulais ! :lol:

Mammouth du PHP | 2493 Messages

26 janv. 2023, 13:44

s'il n'y a qu'un seul fichier index.php et que les différentes pages sont affichées avec
<?php require "contenu/$code_page_par_defaut.php";?>
il n'y a pas besoin des include header menu ..., tout cela peut être dans le index.php

si le site existait avant, c'est mieux pour le référencement de ne pas perdre les urls existantes. c'est le cas ?

Avatar du membre
Eléphanteau du PHP | 49 Messages

26 janv. 2023, 16:39

s'il n'y a qu'un seul fichier index.php et que les différentes pages sont affichées avec
<?php require "contenu/$code_page_par_defaut.php";?
il n'y a pas besoin des include header menu ..., tout cela peut être dans le index.php

si le site existait avant, c'est mieux pour le référencement de ne pas perdre les urls existantes. c'est le cas ?
Pour l'instant, il n'y a qu'un seul index.php, et j'affiche les pages php avec, jusque là, tout va bien !

Mais avec ce code, je dois , en principe, appeler d'autres en html et dans d'autres répertoires et j'ai trop d'erreur.
	<?php require "contenu/$code_page_par_defaut.php";?>
Donc, ça n'a rien à voir, je crois, avec l'entete_inc.php et pied_inc.php.

Et pour infos, ce site n'a jamais existé, pas encore tout du moins.
Je le mettrais en ligne dès que je n'aurai plus d'erreurs.