intégrer header footer dans PHP [Réglé]
PHBR Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre PHBR
- Inscrit le : 09/08/2019
- Site internet
En V4.0 de PHPBOOST, j’ai créé in dictionnaire technique en 3 langues. Pour cela j’ai créé dans WIKI, un FICHIER.PHP(rechdico.php) qui contient une partie HTML (pour saisie du formulaire) et une partie MSQL (pour recherche en BD). Pour que la saisie et le résultat s’affiche dans la fenêtre de PHPBOOST, j’avais inséré dans FICHIER .PHP ces commandes :
include_once('../kernel/begin.php');
define('TITLE', 'Dictionnaire technique Anglais-Francais-Allemand');
include_once('../kernel/header.php'); (en début de fichier)
et include_once('../kernel/footer.php'); (en fin de fichier)
Lien de visite : <a href="http://www.mecavag.fr/wiki/rechdico.php">http://www.mecavag.fr/wiki/rechdico.php</a>
En V5.2 de PHPBOOST j’ai voulu appliquer la même procédure qu’en V4.0, mais cela ne fonctionne pas (page blanche).
J’ai donc créé une page en HTML pour la saisie du formulaire qui appelle, via la commande <FORM ACTION="rechdico.php" METHOD="POST">, le FICHIER.PHP (rechdico.php) pour la rechercher en BD, sans les includes de la V4.0 car cela ne fonctionne plus en V5.2
La saisie se passe bien dans la fenêtre de PHPBOOST V5.2 (header, menu gauche, footer), par contre le résultat de la recherche s’affiche dans une page sans les header, menu gauche et footer de PHPBOOST V5.2.
Ma question, comment afficher le résultat également dans la fenêtre PHPBOOST avec header, menu gauche, footer comme en V4.0. Auriez- vous la solution ou une piste de recherche….
Thème utilisé Underline, navigateur Firefox et Chrome.
Cordialement
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
rhôoo c'est dommage, il n'y a plus le lien phpboost dans le footer du site
bref...
donc depuis la 5.0 ce n'est plus begin.php qu'il faut appeler dans le premier include mais init.php
Mais en théorie, ça renvoie une erreur et pas une page blanche, du coup je pencherai pour une erreur dans le code
PHBR Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre PHBR
- Inscrit le : 09/08/2019
- Site internet
J'avais effectivement essayé l'include de begin.php et/ou init.php et j'avais eu des erreurs :
"Parse error: syntax error, unexpected 'include_once' (T_INCLUDE_ONCE) in C:\wamp64\www\phpboost\pages\rechdico.php on line 3"
d'où la suppression des includes dans le fichier PHP, pour pouvoir utiliser de dictionnaire .
Cdt PHBR
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
PHBR Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre PHBR
- Inscrit le : 09/08/2019
- Site internet
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
afin de tester et trouver la faille
Édité par babsolune Le 10/08/2019 à 16h49
PHBR Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre PHBR
- Inscrit le : 09/08/2019
- Site internet
================Code HTML créé dans PAGE ==================
Code HTML :
<!DOCTYPE html> <html> <head> <title>Dictionnaire Technique</title> <meta charset=UTF-8" /> </head> <body> <br> <FORM ACTION="rechdico.php" METHOD="POST" target="_blank"> <br><h4 class="stitle1">Sélectionner le début du mot à rechercher</h4><br> <br> <form name="dictionnaire" method="post"> <form action="rechdico.php"> Anglais :<br> <input type="text" name="gb" value=""> <br> <br> Francais :<br> <input type="text" name="fr" value=""> <br> <br> Allemand :<br> <input type="text" name="db" value=""> <br> <br> <input type="submit" name="valider" value="Envoyer"> <input type="reset" value="Effacer"> </form> <script></script><script></script></body> </html>
=============================Code PHP créé dans rechdico.php avec le resultat de 3 essais ==========================
Code PHP :
<?php avec l'option-1 include_once('../kernel/header.php'); ================ Résultat : Page blanche, rien d'affiché. avec l'otion-2 include_once('../kernel/init.php'); ====== Résultat : Jeton de session invalide. Veuillez essayer de recharger la page car l'opération n'a pas pu être effectuée. avec l'option-3 include_once('../kernel/begin.php'); ===========Résultat : Jeton de session invalide. Veuillez essayer de recharger la page car l'opération n'a pas pu être effectuée. header('Content-type: text/html; charset=iso-8859-1'); if (isset($_POST['valider'])) { //========================================= // information pour la connection à le DB //========================================= $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'mecavag'; // connection à la DB $link = mysqli_connect ($host,$user,$pass,$db); if (!$link) { die("Connection failed: " . mysqli_connect_error()); } if ( $_REQUEST["gb"] <> "") { $zone = $_POST["gb"]; $sql="SELECT * FROM phpboost_dico WHERE anglais LIKE '$zone%'"; $result=mysqli_query($link,$sql); echo "<br>"; echo '<table BORDER bgcolor="#FFFFFF" style="border-color:#000000;border-width:4;border-style:groove">'."\n"; // première ligne on affiche les titres prénom et surnom dans 4 colonnes echo '<tr>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Anglais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Francais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Allemand</b></td>'; echo '</tr>'."\n"; while($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td bgcolor="#2ECCFA">'.$row['anglais'].'</td>'; echo '<td bgcolor="#FFFFFF">'.$row['francais'].'</td>'; echo '<td bgcolor="#FFFFFF">'.$row['allemand'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; mysqli_free_result($result); } elseif ( $_REQUEST["fr"] <> "") {$zone = $_POST["fr"]; $sql="SELECT * FROM phpboost_dico WHERE francais LIKE '$zone%'"; $result= mysqli_query($link,$sql); echo "<br>"; echo '<table BORDER bgcolor="#FFFFFF" style="border-color:#000000;border-width:4;border-style:groove">'."\n"; // première ligne on affiche les titres prénom et surnom dans 4 colonnes echo '<tr>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Anglais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Francais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Allemand</b></td>'; echo '</tr>'."\n"; while($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td bgcolor="#FFFFFF">'.$row['anglais'].'</td>'; echo '<td bgcolor="#2ECCFA">'.$row['francais'].'</td>'; echo '<td bgcolor="#FFFFFF">'.$row['allemand'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; mysqli_free_result($result); } elseif ( $_REQUEST["db"] <> "" ) { $zone = $_POST["db"]; $sql="SELECT * FROM phpboost_dico WHERE allemand LIKE '$zone%'"; $result=mysqli_query($link,$sql); echo "<br>"; echo '<table BORDER bgcolor="#FFFFFF" style="border-color:#000000;border-width:4;border-style:groove">'."\n"; // première ligne on affiche les titres prénom et surnom dans 4 colonnes echo '<tr>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Anglais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Francais</b></td>'; echo '<td bgcolor="#C0C0C0"> <FONT color="#000000"><b>Allemand</b></td>'; echo '</tr>'."\n"; while($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td bgcolor="#FFFFFF">'.$row['anglais'].'</td>'; echo '<td bgcolor="#FFFFFF">'.$row['francais'].'</td>'; echo '<td bgcolor="#2ECCFA">'.$row['allemand'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; mysqli_free_result($result); } echo "<br>"; echo "<br>"; } ?>
Édité par babsolune Le 11/08/2019 à 19h26
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
donc...
Avant recherche: http://prntscr.com/os7s5s
Après recherche gb http://prntscr.com/os7sn8
Après recherche fr http://prntscr.com/os7t0b
idem en allemand
/wiki/rechdico.php :
<?php // definition de ka racine du site define('PATH_TO_ROOT', '../'); //Début du chargement de l'environnement include_once(PATH_TO_ROOT . '/kernel/begin.php'); //Chargement d'un fichier css, ici le fichier css du module news define('ALTERNATIVE_CSS', 'design'); //Titre de la page, ici Accueil define('TITLE', 'Dictionnaire Technique'); //Chargement de l'environnement ( header ) require_once(PATH_TO_ROOT . '/kernel/header.php'); $Bread_crumb->add("Wiki", url('index.php')); $Bread_crumb->add("Dictionnaire Technique", url('rechdico.php')); $template = new FileTemplate('wiki/rechdico.tpl'); // $token = AppContext::get_session()->get_token(); $request = AppContext::get_request(); $querier = PersistenceContext::get_querier(); $valid = $request->get_postvalue('valider', false); $gb = retrieve(POST, 'gb', ''); $fr = retrieve(POST, 'fr', ''); $de = retrieve(POST, 'de', ''); // Start rechdico if ($valid) { $template->put_all(array( 'C_VALID' => $valid, )); if ($request->get_postvalue('gb', false)) { $zone = $gb; $result = $querier->select("SELECT * FROM " . PREFIX . "dico WHERE anglais LIKE '$zone%'" ); while($row = $result->fetch()) { $template->assign_block_vars('dico', array( 'C_ACTIVE_GB' => !empty($gb) & empty($fr) & empty($de), 'FR' => $row['francais'], 'GB' => $row['anglais'], 'DE' => $row['allemand'], )); } $result->dispose(); } elseif ($request->get_postvalue('fr', false)) { $zone = $fr; $result = $querier->select("SELECT * FROM " . PREFIX . "dico WHERE francais LIKE '$zone%'" ); while($row = $result->fetch()) { $template->assign_block_vars('dico', array( 'C_ACTIVE_FR' => !empty($fr) & empty($gb) & empty($de), 'FR' => $row['francais'], 'GB' => $row['anglais'], 'DE' => $row['allemand'], )); } $result->dispose(); } elseif ($request->get_postvalue('de', false)) { $zone = $de; $result = $querier->select("SELECT * FROM " . PREFIX . "dico WHERE allemand LIKE '$zone%'" ); while($row = $result->fetch()) { $template->assign_block_vars('dico', array( 'C_ACTIVE_DE' => !empty($de) & empty($fr) & empty($gb), 'FR' => $row['francais'], 'GB' => $row['anglais'], 'DE' => $row['allemand'], )); } $result->dispose(); } } echo $template->render(); include_once(PATH_TO_ROOT . '/kernel/footer.php'); ?>
/wiki/templates/rechdico.tpl :
<section> <header> <h1>Dictionnaire Technique</h1> </header> <article> <form name="dictionnaire" method="post" action="rechdico.php"> <fieldset> <legend>Sélectionner le début du mot à rechercher</legend> <div class="fieldset-inset "> <div class="form-element"> <label for="max_width">Anglais :</label> <div class="form-field"><input type="text" name="gb" value=""></div> </div> <div class="form-element"> <label for="max_width">Francais :</label> <div class="form-field"><input type="text" name="fr" value=""></div> </div> <div class="form-element"> <label for="max_width">Allemand :</label> <div class="form-field"><input type="text" name="de" value=""></div> </div> </div> </fieldset> <fieldset class="fieldset-submit"> <div class="fieldset-inset"> <input type="hidden" name="token" value="{TOKEN}" /> <button type="submit" name="valider" value="true" class="submit">Envoyer</button> <button type="reset" value="true">Effacer</button> </div> </fieldset> </form> </article> # IF C_VALID # {plop} <table> <thead> <tr> <th>Anglais</th> <th>Français</th> <th>Allemand</th> </tr> </thead> <tbody> # START dico # <tr> <td# IF dico.C_ACTIVE_GB # style="background-color:#2ECCFA"# ENDIF #>{dico.GB}</td> <td# IF dico.C_ACTIVE_FR # style="background-color:#2ECCFA"# ENDIF #>{dico.FR}</td> <td# IF dico.C_ACTIVE_DE # style="background-color:#2ECCFA"# ENDIF #>{dico.DE}</td> </tr> # END dico # </tbody> </table> # ENDIF # </section>
bien mettre le fichier php à la racine du module wiki et le tpl dans les templates du wiki sinon ça ne fonctionne pas
Édité par babsolune Le 13/08/2019 à 19h50
PHBR Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre PHBR
- Inscrit le : 09/08/2019
- Site internet
Trop FORT j'ai essayé tes correctifs et CA MARCHE.... Super
Je me baserai sur tes 2 examples pour d'autres fichiers.
Merci encore pour ton efficacité et ta réactivité.
PHBR
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie