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 :

switch case, include : ne fonctionne pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut switch case, include : ne fonctionne pas
    Hello
    alors un problème qui doit sans doute concerner le php.ini, mais j'arrive pas à voir d'ou ca vient.

    Sur mon ftp free, le code suivant fonctionne, alors que sur le serveur de ma boite non (win 2003 + IIS6)

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <div id="menu_produits">
    <div class="lien_menu"></div>
    <div class="lien_menu"></div>
    <div class="lien_menu">• <a href="produits.php?page=pel" class="lien_menu_prod">Stand enrouleur PEL</a></div>
    <div class="lien_menu">• <a href="produits.php?page=t" class="lien_menu_prod">Stand classique T</a></div>
    <div class="lien_menu">• <a href="produits.php?page=pl" class="lien_menu_prod">Stand classique PL</a></div>
    <div class="lien_menu">• <a href="produits.php?page=sx2" class="lien_menu_prod">Stand classique SX2</a></div>
    <div class="lien_menu">• <a href="produits.php?page=exterieurs" class="lien_menu_prod">Stands extérieurs</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=xout" class="lien_menu_prod_under">Totem X-OUT</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=dr" class="lien_menu_prod_under">Drapeau DR</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=dg" class="lien_menu_prod_under">Drapeau DG</a></div>
    <div class="lien_menu">• <a href="produits.php?page=pop" class="lien_menu_prod">Stands parapluies POP</a></div>
    <div class="lien_menu">• <a href="produits.php?page=dynamiques" class="lien_menu_prod">Stands dynamiques</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=td" class="lien_menu_prod_under">Totem TD</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=poptd" class="lien_menu_prod_under">Parapluie POP-TD</a></div>
    <div class="lien_menu">• <a href="produits.php?page=nouveautes" class="lien_menu_prod">Nouveautés</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=hor" class="lien_menu_prod_under">Stand horizontal HOR</a></div>
    <div class="lien_menu_under">- <a href="produits.php?page=sacx" class="lien_menu_prod_under">Sac à dos SAC-X</a></div>
    </div>
    <div id="case_produits">
    <?
    switch($page) 
    { 
    default: 
    include('pel.php');
    break;		
    case'pel': 
    include("pel.php");
    break; 
    case't': 
    include("t.php");
    break;
    case'pl': 
    include("pl.php"); 
    break;
    case'sx2': 
    include("sx2.php");
    break; 
    case'exterieurs': 
    include("exterieurs.php");
    break;
    case'xout': 
    include("xout.php");
    break;
    case'dr': 
    include("dr.php");
    break;
    case'dg': 
    include("dg.php");
    break;
    case'pop': 
    include("pop.php");
    break;
    case'dynamiques': 
    include("dynamiques.php");
    break;
    case'td': 
    include("td.php");
    break;
    case'poptd': 
    include("poptd.php");
    break;
    case'nouveautes': 
    include("nouveautes.php");
    break;
    case'sacx': 
    include("sacx.php");
    break;
    case'hor': 
    include("hor.php");
    break;	
    }
    ?>
    </div>
    Les pages pel.php, t.php, pl.php, etc .... sont toutes bien crées et dans le dossier racine.

    merci pour vos réponses
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  2. #2
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    deja je mettrai des espaces entre case et tes chaines

    ensuite fais un tableau associatif, ce sera plus propre



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $asso_array['pel'] = 'pel.php'
    $asso_array['t'] = 't.php'
     
    etc...
     
     
     
    if (isset($asso_array[$page]))
      include($asso_array[$page]);
    else
      include('pel.php');

  3. #3
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut
    mon probleme est juste affichage et non affichage, je veux pas changer le code =)
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  4. #4
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    une histoire de droits peut etre ?

  5. #5
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut
    normalement non
    j ai 100% de contrôles sur le serveur, tout est ok niveau chmod
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  6. #6
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut
    Je viens également de tester ton code, et sans résultats :'(
    enfin si, même problème que pour mon bout de code :'( ²
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  7. #7
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    et il ne dis pas d'erreur ?

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Citation Envoyé par FraK Voir le message
    je veux pas changer le code =)
    Et pourtant, ceci fait la même chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      $page = (isset($_GET['page'])) ? $_GET['page'] . '.php' : 'pel.php';
      include($page);
    ?>
    2 lignes de code contre 50, je n'hésite pas une seconde.

  9. #9
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    exact ca devrait resoudre ton probleme.

    la raison de pourquoi cela fonctionnait chez free est qu'ils ont les REGISTRE GLOBAL a ON

    ce qui peut causer des failles de securite, dans les codes ou par exemple la gestion des droits et gere par une flag.

  10. #10
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut
    merci de vos réponses et effectivement le code est bien plus propre, j'opte ^^
    par contre ça solutionne toujours pas le shmilblik ;p
    mais j'ai vus un post similaire a mon cas sur un blog dev. US, et en fait cela viendrait de IIS qui ne gère pas directement les switch et include, comme il ne gère pas les htaccess et htpwd.
    Je suis donc passé par un module externe à IIS, et avec votre code ou le mien ça fonctionne \o/

    Merci à vous, topic résolu.
    A bientôt pour de nouvelles embrouilles :p
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  11. #11
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    Citation Envoyé par jeca Voir le message
    Bonjour,


    Et pourtant, ceci fait la même chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      $page = (isset($_GET['page'])) ? $_GET['page'] . '.php' : 'pel.php';
      include($page);
    ?>
    2 lignes de code contre 50, je n'hésite pas une seconde.
    et c'est surtout une faille de securite enorme !

    avec ca tu peux facilement executer du code arbitraire.
    verifie toujours que $page ait une valeur que tu acceptes

    Citation Envoyé par vg33 Voir le message
    Une liste blanche, c'est une liste finie de valeurs admises. Ainsi, on peut faire une liste blanche des inclusions admises. Toute autre tentative d'inclusion sera rejetée. Typiquement, on utilise un switch en cas de liste un peu longue ou un in_array().
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $listeBlanche=array('index', 'test', 'admin');
     
    if (in_array($_REQUEST['include'], $listeBlanche)) {
        include ($_REQUEST['include'].'php');
    }
    else {
        exit();
    }

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

Discussions similaires

  1. Include php fonctionne pas
    Par applinew devellop dans le forum Langage
    Réponses: 5
    Dernier message: 27/01/2015, 13h56
  2. Réutilisation d'un include ne fonctionne pas
    Par bigwade dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2013, 14h13
  3. Creation Component : Include ne fonctionne pas
    Par Croaker dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 30/03/2011, 16h29
  4. Réponses: 8
    Dernier message: 15/09/2006, 19h37
  5. [VBA-E]Select case qui ne fonctionne pas :(
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 31/01/2006, 12h13

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