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 :

MVC, liens absolus, relatifs


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut MVC, liens absolus, relatifs
    Salut à tous.

    Je développe un site : www.aslv.fr.nf, hébérgé par free-H.

    J'ai créé une architecture "pseudo" MVC, avec un front-controller index.php, et une variable $page véhiculée par les liens. En cliquant sur actu (href=index.php?page=actu) on arrive sur un module de news, ça marche, c cool.
    Mais les autres liens, par ex "animateurs", qui fonctionne en local, (href=index.php?page=salarie), ne fonctionnent pas, j'arrive sur une page blanche, même pas un message d'erreur...
    Et je comprend pas, parce que chaque controleur et de la même forme : un switch qui teste des variables.
    J'ai essayé pas mal de combinaison de liens (absolus, relatifs), et je trouve pas. En fait ce qui me tracasse, c'est que ça marche pour actu et pas pour les autres (et en local ça marche partout donc).

    Voici les codes :

    le switch du front controller:


    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
    $page = $_GET['page'];
     
    if ( empty($page) )
           $page = 10;
    else
           $page = strip_tags( intval( htmlspecialchars( $page,ENT_QUOTES )));
     
    switch ( $page )
    {    
        case "actu" :
            $pag_id = 2;
            include 'controleurs/actu.php';
            break;
     
        case "salarie" :
            include 'controleurs/salarie.php';
            break;
    ...


    Ensuite la navigation :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="navigation">
            <ul>
     
                <li><a href="/index.php?page=actu" title="Les news et les infos g&eacute;n&eacute;rales de l'association" id="actu">
                    <span>Actualit&eacute;</span></a></li>
     
    ...
     
               <li><a href="/index.php?page=salarie" id="anim" title="Espace prot&eacute;g&eacute;. Modifier son profil, postuler, communiquer ...">
                    <span>Animateurs</span></a></li>  
     
            </ul>
        </div>

    Si vous pensez que c'est utile, je peux mettre les controleurs, mais c toujours pareil, une variable $_GET et un switch...

    Si vous avez une idée, moi je séche depuis 2 jours...

    ET au passage, bravo pour ce site ESSENTIEL, qui m'a bcq appris cette année (plus que mon prof...), et tout particulièrement l'équipe web
    Je vous laisse, je vais lire le tuto sur les tests

  2. #2
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( empty($page) )
           $page = 10;
    else
           $page = strip_tags( intval( htmlspecialchars( $page,ENT_QUOTES )));
    Je ne comprend pas le intval();
    ou du moins, que vient il faire ici ?

    Je pense que l'erreur est là, et je suppose que ton switch comporte un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    default:
    include 'actu....';
    break;
    Si c'est le cas, ne cherche plus, tu peux retirer le intval() de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $page = strip_tags( intval( htmlspecialchars( $page,ENT_QUOTES )));

  3. #3
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut c pas intval
    Bonjour,

    Ya quelqu'un qui a mis de la couleur dans mon message Merci !

    J'utilise intval, parce que dans le contrôleur salarié, la variable du switch, $_GET['action'] est un indice numérique :
    si action = 10 alors, si action = 11, alors ...

    En fait, si je synthétise : qu'est ce qui peut provoquer une page blanche en production et fonctionne en local ?

    Moi j'ai pensé aux liens, mais j'oublie peut être quelque chose...

  4. #4
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Une erreur fatale lors de l'interprétation du script PHP par l'interpréteur et qui surviendrais avant l'affichage.

    Si tu es en serveur de prod je suppose que les display_error sont sur off et que tu dois donc regarder dans les logs.


    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
    $page = $_GET['page'];
     
    if ( empty($page) )
           $page = 10;
    else
           $page = strip_tags( intval( htmlspecialchars( $page,ENT_QUOTES )));
     
    switch ( $page )
    {    
        case "actu" :
            $pag_id = 2;
            include 'controleurs/actu.php';
            break;
     
        case "salarie" :
            include 'controleurs/salarie.php';
            break;
    ...
    Mais si çan c'est une partie de ton code, alors j'avais raison sur le fait que le intval est en trop.

    Car tu définis $page par un indice numérique, puis juste après tu switch dessus en testant des chaines :/

  5. #5
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    C vrai.
    Jsuis dessus, j'espère que c ça, j'en ai marre

  6. #6
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    En fait je me suis trompé en citant mon code

    Bravo...

    Bon, j'ai fait un pti test en simplifiant mon contrôleur, et en ajoutant le code petit à petit. Et ça arrête de s'afficher au moment ou j'inclus :

    Zend_Session::start();

    Je vais fouiller. Je met en résolu. Merci.

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

Discussions similaires

  1. [CKEditor] KCFinder et liens absolus/relatifs
    Par Invité dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 21/12/2013, 14h54
  2. convertir liens relatifs en liens absolus
    Par marechh dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 21/04/2009, 17h51
  3. [Wamp] configuration php : probleme avec les liens absolus
    Par chico_du_33 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 17/05/2007, 14h03
  4. lien html relatif avec tomcat
    Par akira2x3x dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/12/2006, 09h14

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