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

Bibliothèques et frameworks PHP Discussion :

[phpBB][2] En manque d'idée : intégrer une redirection


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut [phpBB][2] En manque d'idée : intégrer une redirection
    Bonjour à tous
    Je me trouve face à un problème qui dépasse ma vision actuelle du langage PHP et des systèmes de gestion de templates.
    Je programme actuellement un portail web et j'utilise pour séparer le contenu du code le système de templates de phpbb.

    J'ai un fichier tp pour l'entete (header.tp) un fichier tp pour la page en cours et un fichier tp pour le footer.
    J'inclu systématiquement le header et le footer. Au début de chacun de mes scripts je parse le header après lui avoir assignés les variables correspondant à un menu de navigation.

    Mon problème est que je veux utiliser une fonction de redirection d'une page vers une autre au bout de x secondes.

    Cette fonction se présente ainsi :

    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
    function redirection($location, $why, $message, $title)
    {
        //include_once('template.inc.php');
        //$template = new Template('./templates');
     
        global $template;
        $template->set_filenames(array('redirection' => 'redirection.tpl'));
     
        $template->assign_vars(array(
        'LOCATION'    =>    $location,
        'WHY'        =>    $why,
        'MESSAGE'    =>    $message,
        'TITLE_PAGE'=>  $title));
     
     
        // On parse le fichier HTML, c'est à dire qu'on assigne aux fichier template toutes les données qu'on à créer dans le .php
        $template->pparse('redirection');
        $template->pparse('footer');
    }
    Le problème c'est que le code de la page en cours de redirection est complètement hors norme ce que je ne peux accepter.
    Exemple :

    Code html : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" type="text/css" href="./include/style.css" media="screen" />
    <title></title>
    </head>
    <body>
     
     [...]
     
    <div id="content">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Refresh" content="2;url=index.php">
    <title>Redirection en cours</title>
    </head>
    <body>
    <div class="center_content">
    <p>
        Vous n'avez pas les droits pour acc&eacute;der &agrave; l'interface d'administration. <br  />
        Vous allez &ecirc;tre redirig&eacute; dans quelques instants.
    </p>
    </div>
    </body>
    </html>
    <!-- Inclusion du pied de page commun à toutes -->
    </div>
    <!-- * -->
    <!-- Footer -->
    <div id="footer">Je suis un magnifique pied de page</div>
    <!-- * -->
    </div>
    <!-- Fermeture des balises HTML-->
    </body>
    </html>
    Cette erreur vient du fait que le header est parsé en début de script. Mais je ne vois pas comment faire autrement.

    Je suis désolé pour la taille de ce post mais je pense que c'était le minimum pour que vous puissiez comprendre quelque chose à mon barratin...

    Je remercie d'avance tout ceux et toutes celles qui se pencheront sur mon problème et qui pourront peut-être me donner quelques idées

    Olivier BALAIS

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Je vais tenter de t'aider mais sans promesse...
    En fait, tu as tes fichiers de la forme suivante (corrige moi si je me trompe):
    <header.tpl>
    <contenu.tpl>
    <footer.tpl>


    Dans ton redirection.tpl tu as quoi comme code?
    Si tu as remis toutes les balises meta, html et compagnie, normal que tu es un double affichage puisque tu retrouves ces balises a la fois dans header.tpl et dans redirection.tpl.
    Ce qu'il te faudrait c'est définir ta redireciton directement dans le header.

    Par exemple dans header.tpl tu rajoutes une lignes
    {LIGNE_REDIRECTION}

    et au moment de parser le header tu fais un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $template->set_filenames(array('header' => 'header.tpl'));
     
    	$template->assign_vars(array(
    	'LIGNE_REDIRECTION'	=>	'<meta http-equiv="Refresh" content="2;url='.$ta_page.'">',
    ));
     
     
     
    	$template->pparse('header');
    Bref, je sais plus trop comment ca marche mais ca devrait le faire.
    Sinon tu peux toujours te tourner vers des solutions de redirection en JS (genre settimeout) qui t'evite de retoucher a tes balises meta notamment mais qui posent un probleme de compatibilité.

    Désolé si je ne te suis pas d'une grande aide mais en tout cas je t'ai donné des pistes.


  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Alors tout d'abord je te remercie d'avoir consacré un peu de ton temps à mon problème !

    Je te confirme que le code du fichier redirection.tpl contient toutes les balises ce qui est à l'origine du doublon.
    J'ai également déjà ajouté dans header.tpl l'équivalent de la ligne que tu désignes par {LIGNE_REDIRECTION}.

    Malheureusement je ne peux pas faire cette opération puisque mon header est déjà parsé en début de fichier. Et dans mon cas je ne vois pas comment le parser après la redirection...

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Je pense en fin de compte que tu m'as apporté une solution. Je ne suis pas sur mon PC donc je ne peux pas la tester tout de suite...

    En fait je m'obstine à parser mon header au début du script... Mais en y réfléchissant bien, ce qui compte c'est qu'il soit parsé avant le content, lui même devant être parsé avant le footer.
    En gros je peux parser les 3 templates en fin de script, et dans cet ordre.
    Ce qui me permettrait donc d'utiliser la technique dont tu m'as parlé, utilisant une variable pour rajouter dans le header la redirection...

    Je vous tiens au courant

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Voila je vous confirme que tout fonctionne parfaitement et que je n'avais nullement besoin de parser le header au début, du moment que le parsing se faisait bien dans l'ordre header, content, footer, à la fin du script...

    Merci encore !

Discussions similaires

  1. [AC-2003] Conception d'une base: manque d'idée
    Par erresse2 dans le forum Modélisation
    Réponses: 4
    Dernier message: 28/01/2013, 12h41
  2. intégrer une bibliothèque dans un IDE
    Par Akramou dans le forum C++
    Réponses: 3
    Dernier message: 29/02/2012, 08h26
  3. [Access] Manque d'idées sur une requête
    Par portu dans le forum Langage SQL
    Réponses: 12
    Dernier message: 22/11/2004, 13h25
  4. [TStringGrid] intégrer une ComboBox
    Par AnneOlga dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/10/2004, 16h46
  5. Réponses: 6
    Dernier message: 30/08/2004, 16h48

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