Toujours le chiffre 1 qui s'affiche

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Toujours le chiffre 1 qui s'affiche

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 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.

Re: Toujours le chiffre 1 qui s'affiche

par or 1 » 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 ?

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 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:

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 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.

Re: Toujours le chiffre 1 qui s'affiche

par Spols » 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.

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 25 janv. 2023, 16:42

En fait, d'après ce que tu dis, si un fichier nommé en php ne contient que du code html avec une ou plusieurs balises php, ça fonctionnerait quand même ?
Alors, là, je ne comprends plus ! :(
Parce que j'avais fait ça, l'index était en majeure partie écrit en html avec quelques script php et était en html, et bien, ces derniers n'étaient pas interprétés.
Par contre, dès que l'index.html a été renomme en index.php, tout allait bien !
Mais si je mets dans des balises "echo" toutes lignes html encadrées par <?php et ?>, plus rien n'a fonctionné !

C'est pour ça que je m'y perds un peu !
C'est assez complexe car j'ai tendance à mélanger le html et le php, je ne sais pas ce qui est bien ou pas, alors, je suis obligé d'y aller à tâtons... il suffit d'une petite faute d'orthographe ou autre pour que ça bug !

Re: Toujours le chiffre 1 qui s'affiche

par Spols » 25 janv. 2023, 14:55

Par défaut un serveur est configuré pour interpréter le php que dans les fichier .php. Il est possible de modifier ce comportement mais je ne te le conseille pas.

il n'y a par contre aucun soucis à ne pas avoir de php dans un fichier .php
Ou seulement une partie, seule les scripts entre les balises php <?php ?> seront interprété, le reste est envoyé tel quel au navigateur.
le html n'est pas un language de script, mais un language de balise, il n'y a aucun soucis à laisser le html fixe (non dynamique) en dehors des balise php pour l'envoyer tel quel. C'est d'ailleur ce que tu avais en premier post.

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 25 janv. 2023, 12:58

Effectivement, quand l'index est en php, tout s'affiche bien.
Seulement, je ne peux pas laisser les scripts html, je mettre tout ça dans "echo" pour que ça fasse du bon php !
Y a rien de compliqué et je vais faire ça... en espérant que tout se passera bien !

Merci pour tes conseils et ta patience Spols.

Je ne vais pas mettre comme résolu de suite, mais je le ferais certainement bientôt.

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 25 janv. 2023, 12:33

Il est clair que la page contenant les include doit être en php, la page inclue peut être en php ou non selon le besoin qu'elle soit interprété ou non.

Regarde toujours le code source de la page généré, tu y verra plus d'indice pour ton debuggage. si php n'est pas interprété tu y verra ton code php mais il ne sera pas visible dans le navigateur

Basé sur le code de ton premier post, header.php ne contient que du code CSS qui après inclusion ne sera pas compris par le navigateur car incorrectement inclus. Quand bien même il serait compris, il n'agit que sur la balise header qui ne contient que ce style

Encore une chose, que ce passe t il si je vais sur ta page avec l'argument ?page=spols ? tu devrais inclure la gestion des comportements non voulu.
Ce qui voudrait dire que je dois refaire la page en php ?


Pourtant, j'ai vu sur https://tutowebdesign.com/inclusion-fichiers-php.php qu'un fichier php pouvait être appelé depuis une page html !
http://qi98.free.fr/images/temp/Image5.jpg
Pourtant, ce n'est que du html !
Je comprends plus !!!!

Justement, c'est mon problème, est-ce que je vais arriver à faire cela !

Re: Toujours le chiffre 1 qui s'affiche

par Spols » 25 janv. 2023, 11:38

Il est clair que la page contenant les include doit être en php, la page inclue peut être en php ou non selon le besoin qu'elle soit interprété ou non.

Regarde toujours le code source de la page généré, tu y verra plus d'indice pour ton debuggage. si php n'est pas interprété tu y verra ton code php mais il ne sera pas visible dans le navigateur

Basé sur le code de ton premier post, header.php ne contient que du code CSS qui après inclusion ne sera pas compris par le navigateur car incorrectement inclus. Quand bien même il serait compris, il n'agit que sur la balise header qui ne contient que ce style

Encore une chose, que ce passe t il si je vais sur ta page avec l'argument ?page=spols ? tu devrais inclure la gestion des comportements non voulu.

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 24 janv. 2023, 18:29

J'ai essayé de faire au plus simple, mais apparemment, les "include" ne fonctionnent pas, peut-être que l'inverse, ça irait mieux (Page en php eppelant une page html).
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8"/>
	<link rel="stylesheet" href="style.css">
	
</head>
<body>

<header>Header
	<?php include "header.php"; ?> 
</header>

<nav>Nav
	<?php include "nav.php"; ?> 
</nav>

<div id="conteneur">
	Conteneur
	<section> Section </section>	

	<article> Article </article>

	<aside> Aside </aside>

</div>

<footer>Footer
	<?php include "footer.php"; ?> 
</footer>

</body>
</html>
J'ai mis le nom des endroits pour me faire une idée de ce que ça donnerait !

Y a pas plus simple, mais rien ne va, sauf le style !
<?php
echo 'Header compilation';
?>]
Normalement, il y a ici la capture d'écran, mais même avec la bonne orthographe, ça ne n'affiche pas.
Image
Par contre, en faisant ça, c'est OK !
http://qi98.free.fr/images/temp/Image4.jpg

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 24 janv. 2023, 18:05

ce qui me choque directement,
ton css contenu dans header.php est contenu dans une balise <header> ce n'est pas comme cela qu'on insère une feuille de style. si ton style n'est pas dynamique, autant ne pas utiliser include mais bien la balise <link> que tu utilise pour les autres feuille de style

pour ton footer, tu inclu une page complète avec les balise doctype, html, head, body hors tout cela est dèjà inclu dans ta page de base, ne met que le code html du footer

ton css agit sur la balise <header> qui ne contient pas de texte, est-ce normal ?
Je te comprends très bien, mais comme je n'arrivais pas à mettre en forme les header et footer, je me suis dis qu'en mettant le css directement dans le code, ça pourrait peut-être aller mieux.
Mais ça ne marche pas que ce soit avec ou sans !

Je pensais que la nouvelle fonction du html <header></header> pouvait permettre que le style soit relié directement avec la nouvelle fonction.
Je dis nouvelle car quand j'ai écrit mon site en 97, ça n'existait pas encore, pas à ma connaissance tout du moins !


Désolé, je n'ai pas trop compris !

C'est vrai que cela serait mieux, un peu comme le header, donc, je vais faire, tout au moins essayer de faire, au mieux pour que le code soit correct.

Re: Toujours le chiffre 1 qui s'affiche

par Spols » 24 janv. 2023, 14:48

ce qui me choque directement,
ton css contenu dans header.php est contenu dans une balise <header> ce n'est pas comme cela qu'on insère une feuille de style. si ton style n'est pas dynamique, autant ne pas utiliser include mais bien la balise <link> que tu utilise pour les autres feuille de style

pour ton footer, tu inclu une page complète avec les balise doctype, html, head, body hors tout cela est dèjà inclu dans ta page de base, ne met que le code html du footer

ton css agit sur la balise <header> qui ne contient pas de texte, est-ce normal ?

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 24 janv. 2023, 13:56

Regarde le code HTML généré pour comprendre comment ça fonctionne car là tu fais un peu n'importe quoi.
Et commence par une page HTML ultra simple après tu complexifieras avec plusieurs include()
J'ai peut-être fait une erreur quelque part en mélangeant html et php !
Mon site en ligne est fait pratiquement en html, mais c''est assez contraignent !

Je veux bien te croire en disant que j'ai certainement fait une erreur... mais laquelle ?

Re: Toujours le chiffre 1 qui s'affiche

par jlb59430 » 24 janv. 2023, 13:00

Avant :

Après :
La syntaxe est bonne pourtant, mais rien ne s'affiche avec IMG, par contre avec QUOTE, ça va !