IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Plus de souvenirs [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut Plus de souvenirs
    Bonjour à tous,

    Il y a quelques années, avant 2000 je crois, j'avais fait un site chez Free. Tout allait bien, sauf que j'ai eu sans doute quelques problèmes de programmation, mais c'est très vague dans mon souvenir.

    Mon site actuel est structuré en html5, CSS3, JS et Php7, mais celui que j'avais fait n'était qu'en html, css et php tout simple.
    Les nouvelles versions sont apparues bien après !
    A l'époque, il n'y avait pas la possibilité de le faire automatiquement, et il fallait jongler avec le css.

    Le lien que j'ai mis n'a rien à voir avec le site actuel.

    Je voulais juste savoir comment pouvait être fait le site pour ce type de lien !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monsite.free.fr/index.php?page=2&id=Contact
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Dans index.php tu peux avoir quelque chose de ce type :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (!isset($_GET['page'])) {
        $_GET['page'] = '1';
    }
     
    if ($_GET['page'] === '1') {
        include 'pages/accueil.html';
    } elseif ($_GET['page'] === '2') {
        include 'pages/contact.html';
    } else {
        exit('Page demandée inconnue');
    }

  3. #3
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Bonjour Seb,

    Il est possible que fût un temps, j'ai dû faire ce genre d'algorithme, mais franchement, je ne m'en souviens pas.

    Si j'ai abandonné ce type de programmation, c'est certainement qu'il y avait un problème quelque part, pour moi en tout cas, mais où .

    De toute manière, il serait inutile de tout refaire parce que la technologie a énormément évolué, et quand j'avais écrit ce site (avant 2000, 96 ou 97 je pense), c'était moins automatisé que maintenant.

    C'est bien simple, je n'avais à cette époque, jamais entendu parlé de <Header>, <Main>, <Aside>, etc., ce qui aide beaucoup pour le commun des mortels !

    Maintenant, l'exemple que tu m'as envoyé est certainement ce que j'avais fait, mais comme il y avait beaucoup de pages et de sous-répertoires, je n'étais certainement pas assez calé pour faire cette programmation étendue.

    Merci beaucoup de tes explications Seb et passe une bonne soirée.

  4. #4
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Dans index.php tu peux avoir quelque chose de ce type :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (!isset($_GET['page'])) {
        $_GET['page'] = '1';
    }
     
    if ($_GET['page'] === '1') {
        include 'pages/accueil.html';
    } elseif ($_GET['page'] === '2') {
        include 'pages/contact.html';
    } else {
        exit('Page demandée inconnue');
    }
    Bonjour Seb,

    J'ai essayé ce que tu m'as envoyé, ça fonctionne bien, c'est évident.
    Voyant cela, j'ai refait une fonte complète pour mon futur site.
    Nom : Image6.jpg
Affichages : 147
Taille : 59,5 Ko

    J'ai galéré au début car je mélangeais html et php, maintenant ça va.

    j'ai bien l'entête, le menu, le conteneur et le pied de page (html et php) et tout ça formater par du css.

    A prime abord, c'est bien fait, mais dans le menu, si je mets un lien "<a href=...", je perds tout et il faudrait refaire la page index complète pour garder la mise en page.
    Comme ce serait assez fastidieux, j'ai demandé ton aide à ce sujet.

    J'ai essayé d'appliquer ton code, mais ça ne va pas, c'est toujours la même page qui s'affiche dans "conteneur", et pas moyen de le formater avec css.
    Nom : Image7.jpg
Affichages : 136
Taille : 31,7 Ko

    index.php
    Comme ça, c'est OK, mais si je mets index.html, ça ne va plus !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <<?php
     
    $pages = [
    	"contenu/accueil/accueil" => [
    		"titre" => "Accueil",
    	],
    	"contenu/apropos/apropos" => [
    		"titre" => "A propos",
    	],
    	"contenu/contact/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"/>
    	<title><?php echo htmlspecialchars($informations_page["titre"]);?></title>
    	<link rel="stylesheet" href="css/style.css">
    <!--	<link rel="stylesheet" href="css/header.css">-->
    <!--	<link rel="stylesheet" href="css/footer.css">-->
    </head>
    <body>
     
    <!-- ----- Header.php ----- -->
     
    <header>
    	<?php include_once "entete_inc.php";?>
    </header>
     
    <!-- ----- menu ----- -->
    <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">
    article <br>
    		<?php require "contenu/$code_page_par_defaut.php";?>
    	</div>
     
     
    <!-- ----- Footer.php ----- -->
    <footer>		
    	<?php include_once "pied_inc.php"; ?> 
    </footer>
     
    </body>
    </html>
    --------------
    Après multiples essais, voilà maintenant l'erreur qui m'est renvoyée
    Warning: Undefined array key "accueil" in C:\laragon\www\MultiPages\index.php on line 29
    et la ligne inciminée dans index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $informations_page = $pages[$code_page_par_defaut];
    Je signale au passage que j'ai modifié les chemins d'accès aux fichiers, dans les premières lignes de index.php.
    Nom : Image1.jpg
Affichages : 145
Taille : 6,8 Ko

    Je ne peux pas dire pourquoi j'ai ça.

    J'ai fait de cette manière pour bien différencier l'endroit où sera le fichier, étant donné qu'à l'avenir, j'en aurais beaucoup plus !

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 436
    Points : 4 930
    Points
    4 930
    Par défaut
    Bonjour,

    Adaptez votre tableau d'une façon multidimensionnel comme suite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pages = [
    	"accueil"=>["href"=>"contenu/accueil/accueil","titre"=>"Accueil"],
    	"apropos"=>["href"=>"contenu/apropos/apropos","titre"=>"A propos"]
    	,"contact"=>["href"=>"contenu/contact/contact","titre"=>"Contact"]
    ];
    Après vous pouvez accéder aux valeurs via les clés accueil, apropos et contact :
    echo "Titre :".$pages[$_GET["page"]]["titre"]." href :".$pages[$_GET["page"]]["href"];

  6. #6
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Bonjour,

    Merci de l'astuce parce que je n'aurais pas pensé à faire comme ça !
    Mais il m'est impossible de voir si c'est bon ou pas parce que j'ai cette erreur
    Warning: Undefined array key "accueil/accueil" in C:\laragon\www\Sementic-Element-Html\index.php on line 26
    et la ligne correspondante dans index.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $informations_page = $pages[$code_page_par_defaut];

    J'ai un niveau pas assez élevé pour trouver l'erreur !

  7. #7
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Seb, le code que tu m'as envoyé fonctionne très bien.
    J'ai donc fait un site complet et j'ai mis ton code, j'ai commencé à avoir de erreurs.
    J'ai donc voulu modifier avec mes connaissances, mais j'en avais toujours !

    Alors, modifs après modifs, c'est pas plus mal que si c'était pire !

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 436
    Points : 4 930
    Points
    4 930
    Par défaut
    Bonjour,

    Citation Envoyé par jlb59 Voir le message
    Merci de l'astuce parce que je n'aurais pas pensé à faire comme ça !
    Mais il m'est impossible de voir si c'est bon ou pas parce que j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Undefined array key "accueil/accueil" in C:\laragon\www\Sementic-Element-Html\index.php on line 26
    Vous demandez d'afficher la page accueil/accueil alors que le tableau des pages ne contient aucun index avec ce nom, ses indexes sont (accueil, apropos et contact).

    Donc posez vous la question pourquoi $_GET["page"] vaut "accueil/accueil" ?

    Pour vérifier l'attribut href des liens, vous pouvez utiliser l'outil de développement du navigateur en inspectant le lien avec un clic droit puis inspecter.

  9. #9
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par jlb59 Voir le message
    Bonjour,
    Merci de l'astuce parce que je n'aurais pas pensé à faire comme ça !
    Bon, j'ai essayé votre code mais j'ai toujours des erreurs.
    En voici quelques une :

    Conteneur est l'endroit où doit s'afficher les pages.
    Conteneur
    Warning: Undefined array key "faq | " in C:\laragon\www\Sementic-Element-Html\index.php on line 65

    Warning: Trying to access array offset on value of type null in C:\laragon\www\Sementic-Element-Html\index.php on line 65

    Warning: Undefined array key "faq | " in C:\laragon\www\Sementic-Element-Html\index.php on line 65

    Warning: Trying to access array offset on value of type null in C:\laragon\www\Sementic-Element-Html\index.php on line 65
    Titre : href :
    Warning: Undefined variable $code_page_par_defaut in C:\laragon\www\Sementic-Element-Html\index.php on line 66

    Warning: require(pages/.html): Failed to open stream: No such file or directory in C:\laragon\www\Sementic-Element-Html\index.php on line 66

    Fatal error: Uncaught Error: Failed opening required 'pages/.html' (include_path='.;C:/laragon/etc/php/pear') in C:\laragon\www\Sementic-Element-Html\index.php:66 Stack trace: #0 {main} thrown in C:\laragon\www\Sementic-Element-Html\index.php on line 66
    C'est pas gagné et je me demande si je ne vais pas laisser tomber cette solution !

  10. #10
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    Bonsoir,

    En lisant ce topic et en suivant le modèle de Toufik83, je me pose la question : quelle est la valeur récupérée par :
    $code_page_par_defaut= $_GET["page"];
    -> devrait être : accueil - apropos ou contact ... ce qui ne semble pas être le cas.

    Pour votre information page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $informations_page= $pages[$code_page_par_defaut]["titre"]
    Ensuite, l'affichage de la page si le get est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include($pages[$code_page_par_defaut]["href"].'.php') ?>
    Mais pour cela il faut utiliser le code de $pages de Toufik83 dans sa totalité

  11. #11
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Bonjour ddaweb,
    C'est sympa et gentil à vous d'avoir fait cette correction !
    Le problème persiste malgré tout.

    A force de faire des modifs, je suis perdu !
    Alors, le meilleurs moyen est de tout reprendre à zéro et tenter de faire l'ébauche avec ce que m'avait donné seb.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
     
    $page = [
    /* --------------- Modifié par toufik83  mais ça va toujours pas c------------------------------
    	"accueil"=>["href"=>"pages/accueil","titre"=>"Accueil"],
    	"apropos"=>["href"=>"pages/apropos","titre"=>"A propos"],
    	"contact"=>["href"=>"pages/contact","titre"=>"Contact"],	
    	"faq"=>["href"=>"pages/faq","titre"=>"FAQ"],
    	"grand-test"=>["href"=>"pages/test-qi","titre"=>"Grand Test"],
    	"test-qi"=>["href"=>"pages/contact/contact","titre"=>"Test QI"],
    	"sitemap"=>["href"=>"pages/sitemap","titre"=>"Sitemap"],
    (...)
    ---------------------------------------------------------------------*/
    	"accueil" => ["titre" => "Accueil",],
    	"apropos" => ["titre" => "A propos",],
    	"contact" => ["titre" => "Contact",],
    	"faq" => ["titre" => "FAQ",],
    	"grand-test" => ["titre" => "Grand Test",],
    	"test-qi" => ["titre" => "Test QI",],
    	"sitemap" => ["titre" => "Sitemap",],
    s];
     
     
    if (	!isset($_GET["page"])
    	||	!isset($pages$_GET["page"]])
    ) {
    	$code_page_actuelle = "accueil"; // page par défaut
    } else {
    	$code_page_actuelle = $_GET["page"];
    }
     
    $informations_page = $page[$code_page_actuelle];
     
    ?>

    Bien que ce qu'il m'avait donné, ça fonctionnait bien tant que tous les fichiers html sont regroupés dans 1 seul répertoire.
    Mais j'envisage de mettre les pages dans des répertoires distincts, comme le montre le code, il est prévu d'en mettre une trentaine, et le code de Seb ne va pas lorsque je spécifie le chemin complet, j'ai essayé mais toujours des erreurs :

  12. #12
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Vous demandez d'afficher la page accueil/accueil alors que le tableau des pages ne contient aucun index avec ce nom, ses indexes sont (accueil, apropos et contact).

    Donc posez vous la question pourquoi $_GET["page"] vaut "accueil/accueil" ?
    Bonjour,

    Oui, j'ai vu et c'est corrigé (à force des copier/coller, y a des erreurs).

  13. #13
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par ddaweb Voir le message
    Bonsoir,

    En lisant ce topic et en suivant le modèle de Toufik83, je me pose la question : quelle est la valeur récupérée par : -> devrait être : accueil - apropos ou contact ... ce qui ne semble pas être le cas.

    Pour votre information page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $informations_page= $pages[$code_page_par_defaut]["titre"]
    Ensuite, l'affichage de la page si le get est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include($pages[$code_page_par_defaut]["href"].'.php') ?>
    Mais pour cela il faut utiliser le code de $pages de Toufik83 dans sa totalité
    Voilà les erreurs générées avec le nouveau code que vous avez envoyé !
    Nom : 01.jpg
Affichages : 114
Taille : 118,7 Ko

  14. #14
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par ddaweb Voir le message
    Bonsoir,

    Mais pour cela il faut utiliser le code de $pages de Toufik83 dans sa totalité
    Bonjour,

    La totalité du code, c'est moi qui ai la source de ce code... et il est tout petit... pour l'instant !

    Quoiqu'il en soit, vos changements de code nfont apparaître d'autres erreurs.
    Nom : 02.jpg
Affichages : 119
Taille : 72,0 Ko
    Comme vous avez dit, il serait mieux pour vous que vous ayez le code complet sous les yeux !
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
     
    $pages = [
    	"accueil"=>["href"=>"contenu/accueil/accueil","titre"=>"Accueil"],
    	"apropos"=>["href"=>"contenu/apropos/apropos","titre"=>"A propos"],
    	"contact"=>["href"=>"contenu/contact/contact","titre"=>"Contact"],
    ];
     
     
    if (!isset($_GET['pages'])) {
        $_GET['pages'] = '1';
    }
     
    if ($_GET['pages'] === '1') 
    	include 'pages/accueil.html'; {
    } elseif 	
    	($_GET['pages'] === '8') {
        include 'pages/loisirs.html';
    } elseif 
    	($_GET['pages'] === '3') {
        include 'pages/contact/contact.html';
    } else {
        exit('Page demandée inconnue');
    }
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8"/>
    <!--	<title>QI98 | < ?php echo htmlspecialchars($informations_page["titre"]);?></title>-->
    	<link rel="stylesheet" href="/css/style.css"/>
    </head>
    <body>
    		<?php foreach ($pages as $code_page => $tab_page) {?>
    			<a href="?page=<?php echo htmlspecialchars($code_page);?>">
    				<?php echo htmlspecialchars($tab_page["titre"]);?></a>
    		<?php }?>
     
    	<div class="conteneur_page">
    		<?php require "pages/$code_page_actuelle.html";?> 
    	</div>
     
    </body>
    </html>
    Si ça peut aider !
    Merci
    Images attachées Images attachées  

  15. #15
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    J'ai comme l'impression que vous vous mélangez les pinceaux dans vos répertoires des fichiers

    Dans le tableau de Toufik83 : contenu/accueil/
    Votre code fait apparaître un répertoire "pages" en plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="conteneur_page">
    	<?php require "pages/$code_page_actuelle.html";?> 
    </div>
    En plus vous mélangez les codes de Seb et Toufik83 qui ne fonctionnent pas de la même façon !
    Les messages d'erreur le montre bien par des variables inconnues.

    Pour la page "accueil" du GET, l'emplacement de $code_page_actuelle versus Toufik83 est sensé vous donner : contenu/accueil/accueil (vous pourriez éventuellement ajouter l'extension du fichier directement et donc plus le faire après : contenu/accueil/accueil.html).

    Le mieux est donc de reprendre à votre aise depuis le début suivant une structure bien établie et s'y maintenir

    Si les pages se retrouvent dans le répertoire "pages" et que le $_GET['page'] donne bien le bon nom de page, un code qui pourrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $page='pages/accueil.html';
    if (isset($_GET['page'])) { $page='pages/'.$_GET['page'].'.html'; }
    if (!file_exists($page)) { $page='pages/accueil.html'; } // la page accueil.html doit exister ou mettre une page 404
    ?>
    Il y a un contrôle que la page existe bien

  16. #16
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    C'est vrai que je m’emmêle les pinceaux !
    Au début, je voulais juste savoir comment faire pour voir dans la barre d'adresses "http://monsite.free.fr/index.php?page=2&id=Contact", et Seb m'a donné le moyen d'y parvenir.

    Le petit exemple qu'il m'avait envoyé reflétait presque la solution.
    Seulement, son code lisait les fichiers existants dans un répertoire, comme il n'y en avait que 2, c'était bien.

    Comme dans un proche avenir, il va falloir faire à peu près la même chose... mais avec 1 répertoire (peut-être plus) et surtout des sous-répertoires, ça pas être gagné d'avance.
    Je voulais mettre les fichiers à lire dans les sous-répertoires pour ne pas mélanger dans le répertoire ceux qui ont le même nom mais pas la même utilisation.

    J'espère que mes explications sont compréhensibles !

    Et tout est parti de là !
    J'avais essayé moi-même de modifier le code afin de lire les fichiers dans les sous-répertoires, mais comme je n'y arrivais pas, j'ai demandé de l'aide ici !

    Si, comme vous dîtes que les codes de Seb et Toufik83 fonctionnent différemment, à force de modifier le code, j'ai plus mal que bien !
    Comment reconnaître le bon et le moins bon ?

    Je crois que je vais suivre votre conseil Le mieux est donc de reprendre à votre aise depuis le début suivant une structure bien établie et s'y maintenir

    Bonne soirée et merci encore.

  17. #17
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    Citation Envoyé par jlb59 Voir le message
    Au début, je voulais juste savoir comment faire pour voir dans la barre d'adresses "http://monsite.free.fr/index.php?page=2&id=Contact", et Seb m'a donné le moyen d'y parvenir.
    Ce n'est pas difficile, dans votre url :
    - $_GET['page'] récupère 2
    - $_GET['id'] récupère Contact

    En sachant cela, il est assez facile d'ouvrir la page souhaitée.
    Juste le problème des multiples répertoires : là le code de Toufik83 permet de mettre tout dans un tableau multidimensionnel.
    Il est possible de le passer par l'url pour 1 répertoire de préférence : http://monsite.free.fr/index.php?pag...ct&rep=contact

    C'est également possible avec switch-case, peut-être plus compréhensible pour vous (donne le même résultat que le tableau multidimensionnel) ? ... url : http://monsite.free.fr/index.php?page=xx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    switch ($_GET['page']) {
    	case "1" :
    		$nom_page="Accueil";
    		$url_page="pages/accueil/accueil.html";
    		break;
     
    	case "2" :
    		$nom_page="A propos";
    		$url_page="pages/apropos/page/apropos.html";
    		break;
     
    	// --------------- Page si case pas connu	
    	default :
    	$nom_page="Aucune page sélectionnée";
    	$url_page="pages/pagedefaut.html";
    }
    ?>
    Le répertoire est configurable à souhait, avec le défaut de mettre un "case"/page
    ÉDIT : vous pouvez remplacer le chiffre par un nom -> à modifier dans le code évidemment

  18. #18
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Bonjour ddaweb,

    C'est sympa de m'avoir donné ces explications !
    Encore un code à modifier, comment voulez-vous que je sois pas perdu après tout ça ?

    Seb m'avait envoyé un code simple qui fonctionnait bien.
    Le seul hic est qu'il ne lisait les fichiers présents sans un seul répertoire ! d'ailleurs, l'adresse était "http://multipages.test/?page=loisirs".

    Il y a aussi le code que Toufik83 m'a envoyé, il devait être bon en principe, mais ça générait toujours des erreurs.
    Si son code mettait dans un tableau multidimensionnel et affichait l'adresse que vous avez donnée, comme vous m'aviez dit hier, "je m'emmêle les pinceaux" !

    Dans un sens, c'est vrai car j'ai toujours tendance à croire que ce genre de programmation (php) sera aussi facile que celle du html, avec laquelle j'ai fait mes armes.

    Maintenant, il y a la commande "switch", que j'avais déjà essayé, mais pas comme l'avez fait, mais j'avais toujours des erreurs.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    $page = null;
     
    if (!isset($_GET['page'])) {
        $page = $_GET['page'];
    }
     
    switch($page){
        case 'p1':
            $page = 'accueil.html';
            break;
        case 'p2':
            $page = 'apropos.html';
            break;
        case 'p3':
            $page = 'contact.html';
            break;
        case 'p4':
            $page = 'faq.html';
            break;
        default:
            $page = 'erreur-404.html'; 
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
      <head>
        <title>Lire un fichier</title>
      </head>
      <body>
     
    <?php include $page; ?>
     
      </body>
    </html>
    Donc, je me suis dit que ça ne devait pas être une bonne idée !

    Je vais prendre exemple sur votre code, qui semble plus complet, on verra bien !

    Bon, j'ai essayé et ça va pas comme prévu !
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $page = null;
    
    switch ($_GET['page']) {
    	case "p1" :
    		$nom_page="Accueil";
    		$url_page="pages/accueil/accueil.html";
    		break;
    Citation Envoyé par erreur
    Warning: Undefined array key "page" in C:\laragon\www\ddaweb-switch\index.php on line 4
    Franchement, je ne vois plus rien !
    Je vais laisser tomber provisoirement et reprendre dans 1 semaine, parce que là, quand ça veut pas.. ça veut pas !

    Merci quand même et bonne journée.

  19. #19
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    J'ai oublié de préciser que lorsqu'on utilise du PHP, l'extension de la page doit être .php -> index.php, songez y pour toutes les pages

    Je viens de tester un code hyper simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    if (isset($_GET['page'])) {
    	switch ($_GET['page']) {
    		case "p1" :
    			$nom_page="Accueil";
    			$url_page="pages/contenu/p1.html";
    			break;
     
    		case "p2" :
    			$nom_page="A propos";
    			$url_page="pages/contenu/p2.html";
    			break;
     
    		// --------------- Page si case pas connu	
    		default :
    		$nom_page="Aucune page sélectionnée";
    		$url_page="pages/defaut.html";
    	}
    }
    else {
    	$nom_page="Aucune page sélectionnée";
    	$url_page="pages/defaut.html";
    }
    if (!file_exists($url_page)) { $url_page="pages/erreur_404.html"; } // la page 404
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    	<head>
    		<title>Lire un fichier</title>
    	</head>
    	<body>
    	<ul>
    		<li><a href="?page=p1">Accueil</a></li>
    		<li><a href="?page=p2">A propos</a></li>
    	</ul>
    		<h4>Page affichée : <?php echo $nom_page ?></h4>
    		<?php include ($url_page); ?>
     
    	</body>
    </html>
    La structure des répertoires, qui me semble être ce que vous voulez : "test" étant le début du site ou le root, où se trouve index.php (ne pas le créer)

    Nom : structure2.jpg
Affichages : 95
Taille : 9,4 Ko

    NB :
    - je vois que vous venez de changer le nom des pages : p1 et p2
    - La page "erreur_404.html" DOIT être présente car elle est la page affichée en cas de problème

  20. #20
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!isset($_GET['page'])) {
        $page = $_GET['page'];
    }
    switch($page){
        case 'p1':

    Des yeux nouveaux sont quand même plus efficaces, la preuve !
    Ça fonctionne très bien.
    Comme vous m'aviez dit que je m'emmêlais les pinceaux, c'était une évidence car, recevoir des codes différents à chaque fois, avec des erreurs un peu partout, je savais plus où était la tête ni où était la queue !

    Dans la barre d'adresses, j'ai maintenant : http://localhost/test-multipages/?page=p1, mais c'est trop anonyme !
    D'ailleurs, il me semble qu'on avait abordé ce sujet hier.

    Mais en travaillant sur les variables, je dois pouvoir arriver à faire ça : http://localhost/test-multipages/index.php?page=2&id=contact ou quelque chose dans ce genre.
    Avec votre code pour le tableau multidimensionnel (et celui de Toufik83), je vais certainement y arriver !

    Un grand merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 20
    Dernier message: 15/06/2022, 23h24
  2. Les PC sont de plus en plus bruyants que faire
    Par plichtal dans le forum Ordinateurs
    Réponses: 260
    Dernier message: 23/12/2011, 12h28
  3. [DOS][Mémoire] Allouer plus de 64 Ko
    Par Pascool dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 10h26
  4. Réponses: 3
    Dernier message: 16/12/2002, 16h12
  5. [Datareport] Etat plus large que le papier
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/09/2002, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo