Bonjour à toutes et à tous!
Je suis débutant, j'apprends HTML5, PHP et Javascript pour créer un site local pour des règles de D&D3.5.
Il contient plusieurs milliers de pages.
Mes pages sont découpées en 4 blocs:
1 - Entête (Haut.php)
2 - Bas de page (Bas.php)
3- au centre à gauche un "navigateur"
4- au centre à droite le corps de ma page.
Pour 3 et 4 j'utilise des colonnes factices.
Pour faciliter le classement j'ai créé 24 répertoires contenant chacun plusieurs répertoires en cascade.
Dans chaque répertoire de la racine (les 24) j'ai créé un fichier (Haut.php) qui contient toute la partie <head> et ce que ci-dessus j'appelle (3- au centre à gauche un "navigateur") c'est ce qui change peu d'une page à l'autre.
Les seuls changements sont :
- <title>
- 2 liens (page précédente, page suivante)
- x liens représentant l'arborescence amont de la page (Chapitre, sous-chapitre...)
Chaque page php "principale" ne contient que la partie 4 plus:
- elle commence par une requête MySQL récupérant les données pour :
* <title>
* 2 liens (page précédente, page suivante)
* La date de mise à jour de la page
* La position de la page dans l'arborescence
* Le nom de la page "sans .php"
- l'include de Haut.php
- le corps de page
- l'include de Bas.php
Mon problème est que Haut.php, et bas.php ne "voient" pas mes $ligne[], car <title>, mes 2 liens (page précédente, page suivante) et La date de mise à jour de la page ne se mettent pas à jour sur les pages appelées.
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 <?php echo $_GET['Nom']; if(isset($_GET['Nom'])) // Si le paramètre Nom (qui représente le nom de la page) est présent { $serveur = "localhost"; // Le serveur $nom_base = "MaBase"; // La Base de données $login = "MonLogin"; // le login $pwd = "MonPswd"; // Le mot de passe // connexion à MySQL $link = mysql_connect($serveur,$login,$pwd) or die('ERREUR '.mysql_error()); // sélection de la base de données<br /> mysql_select_db ($nom_base) or die ('ERREUR '.mysql_error()); // J'effectue une requête $requete = "SELECT * FROM navig WHERE nom = Nom"; // SELECT(ionner) * (tous les champs) FROM (depuis) navig (la table navig) WHERE (pour lesquels) nom (le champ nom) = (est égal à) Nom (la chaine contenue dans le paramètre passé Nom) $resultat = mysql_query($requete, $link) or die($requete . " - " . mysql_error()); $ligne = mysql_fetch_assoc($resultat); // $ligne contiendra un enregistrement complet de la table } echo $ligne["id"] . " - " .$ligne["Nom"] . " - " .$ligne["Avant"] . " - " .$ligne["Apres"] . " - " .$ligne["Titre"] . " - " .$ligne["DateMaJ"] . " - " . " - " .$ligne["Arbre"]; include('Haut.php'); ?>
Pourtant l'echo m'affiche l'enregistrement donc la requête fonctionne.
J'ai oublié de dire que lors de l'appel d'une page j'ajoute un paramètreet que ce Nom est un champ indexé de ma base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="../PERSO/_0Descrpt.php?Nom=_0Descrpt">Description</a>
Voila, j'espère avoir été clair dans l'exposé de mon problème.
Inutile de vous dire que depuis plusieurs jours j’écume "GOGOL" mais je n’ai pas trouvé de solution claire j'ai lu des choses sur $GLOBAL mais je n'ai pas bien compris le fonctionnement et en plus il est dit que çà engendrait des failles de sécurité.
Pardon pour la longueur et merci pour vos explications éclairées à venir.
Partager