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 :

Probleme de switch


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 13
    Points : 16
    Points
    16
    Par défaut Probleme de switch
    Bonjour,

    je souhaiterai acceder a mes différentes pages de menu à partir de la fonction switch.

    dans ma page index, j'ai inclus quatre fichiers:

    header.php

    content2.php
    footer.php

    et le plus important, le content qui changera en fonction de la variable de mon switch, qui correspondra a mon content1.

    Voici le code correspondant a celui-ci:


    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
    <div id="container">
     
    <?php include("header.php"); ?>
     
    <?php // include("content1.php"); ?>
     
    <?PHP 
     
     
    switch ($page) {
     
     
    		default:
            include ("content1.php");
    		break;
     
        case "nowplaying":
            include ("now-playing.php");
            break;
        case "shows":
            include ("shows.php");
            break;
        case "schooltours":
            include ("school-tours.php");
            break;
    	case "schooltours":
            include ("contact.php");
            break;
    	case "contact":
            include ("contact.php");
            break;
     
     
     
    }
    ?>
     
    <?php include("content2.php"); ?>
     
    <?php include("footer.php"); ?>
     
      <!-- end .container --></div>
    j'ai donc en quelque sorte créé mon content1 à partir de mon switch.
    lorsque je clique sur now playing par exemple, je devrai donc créer ma page avec le contenu décrit dans ma page now-playing.php.


    Afin de pouvoir appeler mon contenu, j'ai inséré ce code à mon menu, dans ce cas précis, le bouton now playing de mon menu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<li><a class="fNiv" href="index.php?page=nowplaying">Now Playing</a>
    page étant la variable décrite dans mon switch:

    Mais voila, lorsque je clique sur mes différents boutons, dans ma barre d'adresse, j'ai bien ce lien-ci:

    http://localhost:8888/website/index.php?page=nowplaying


    Mais mon contenu, ici, mon content1, ne change pas.
    j'ai pourtant essayé de lui attribuer un fond different, et ce, depuis la feuille de style CSS, juste pour faire un test.

    Je n'arrive vraiment pas à voir d'ou le problème peut venir, pourriez vous prendre le temps de m'aider, merci.

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    D'ou vient cette variable $page ?

    N'aurais tu pas oublié de récupérer le paramètre GET "page" ($_GET['page']) ?

    Au passage, penche toi sur la réécriture d'URL (Apache/.htaccess entre autre), car la voie que tu prends est bonne il manque quelques aspects.

    La réécriture permet entre autre ceci :
    - De créer (générer) des URLs de ce type : -http://www.domaine.com/nowplaying
    - Puis lorsqu'elle est réécrite on obtient ceci : (la même chose que tu fais au final) : http://www.domaine.com/index.php?page=nowplaying


    C'est important pour le référencement par exemple, et ça permet d'avoir une meilleure structure de son site.
    Aussi, ne pas omettre de bien vérifier les données extérieurs comme $_GET, et dans ton cas de vérifier l'existence du fichier (avec file_exists() entre autre).
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Protege tes accès avec htmlspecialchars
    Bonjour,
    débutant aussi..un peu..
    Dans tous les forums et bouquins, on te dira de protéger ton site des entrées par la fonction GET.
    Tu dois d'abord tester l'existence de la valeur $page, si elle existe tu la récupères protégée par la fonction htmlspecialchars(), tu récupères ensuite ta valeur page et tu peux la manipuler avec switch.
    Je te donne un copier-coller de ce que j'utilise, tu as juste à adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if ((isset($_GET['page']))
    {
    					$action=htmlspecialchars($_GET['action']);
    					switch($action)
    					{
    					case 'Download':  include "download_ID.php"; break;
    					case 'Moteur_Recherche':  include "moteur_recherche.php"; break;
    					}		
    				}

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Desole redaction en cours et depart sur le site
    Salut,
    désolé, j'adaptais pour toi mon code et mon message a été envoyé..
    Tu trouveras ci-dessus la méthode, les variables sont incorrectes,
    je n'ai pas eu le temps de tout corrigé avant envoi. Gloupss...

Discussions similaires

  1. probleme de switch
    Par maysa dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2006, 16h00
  2. Probleme instruction switch
    Par mpascolo dans le forum Langage
    Réponses: 7
    Dernier message: 17/10/2006, 11h14
  3. Problème de switch !!!!!!
    Par King_T dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2006, 18h18
  4. [Language]Probleme de switch case
    Par nana1 dans le forum Langage
    Réponses: 20
    Dernier message: 17/11/2005, 00h49
  5. [débutant] Probleme avec switch et héritage
    Par durk dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 09h48

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