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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 375
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 375
    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 éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 : 188
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 : 178
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 : 183
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 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    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 éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 !

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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 !

  9. #9
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    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.

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    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).

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Bonjour ddaweb,

    Comme le squelette html a été validé avec W3, j'ai mis votre code et ça fonctionne très bien.

    Il me reste à habiller le site.

    Comme j'en avais déjà fait un en html, une petit "copier/coller" devrait être pas mal !

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

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