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 :

Éviter les variables dans l'URL


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 56
    Points
    56
    Par défaut Éviter les variables dans l'URL
    Bonjour,
    Actuellement pour le site que je suis en trin de faire je fait des include avec les variable passe via la methode get

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( file_exists ( 'includes/' . $_GET['include'] . '.php' ) ) 
    						include ('includes/' . $_GET['include'] . '.php');
    					else 
    						echo'Erreur inattendue (code 001).';
    qd je change de page je fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php?include=jeunesse">
    Est ce possible d eviter de voir dans l url ?include=jeunesse
    ??

  2. #2
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    Et tu voudrais y voir quoi ?

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Le problème n'est pas de voir ce "include=jeunesse" encore que tu aurais pu choisir autre chose que include qui renseigne vraiment un peu trop sur le devenir du paramètre.

    Le vrai problème, c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( file_exists ( 'includes/' . $_GET['include'] . '.php' ) ) 
        include ('includes/' . $_GET['include'] . '.php');
    else 
        echo'Erreur inattendue (code 001).';
    Ca te laisse trop dépendant de l'entrée de l'utilisateur.

    Pour ma part, je préfère faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $myParam = $_GET['include'];
    switch ($myParam) {
    case 'jeunesse' :
        include 'inc/jeunesse.php';
        break;
    case 'bidule' :
        // ici, je montre que l'on s'affranchit du nom de fichier
        include 'inc/machin.php';
        break;
    default:
        // ici je montre que l'utilisateur a essayer d'entrer autre chose
        include 'inc/erreur.php';
        break;
    }
    Ainsi, si l'utilisateur entre un paramètre imprévu, il est bloqué.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 56
    Points
    56
    Par défaut
    ok ...

    merci je vais tenter comme ceci.

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    le problème avec cette méthode c'est qu'a chaque nouvelle page tu devras modifier le fichier index.php pour y ajouter de nouvelles conditions.

    Tu pourrais continuer avec ta méthode car de toutes facon les seuls fichiers qui sont inclus sont contenus dans le dossier include/ donc niveau sécurité tu ne risques rien si ce n'est de pas trouver le fichier, et encore meme pas puisque tu fais un if(file_exists($file)).

    Pour éviter d'avoir ?include=jeunesse dans ton url, tu pourrais écrire ceci dans un fichier .htaccess situé à la racine de ton site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^/([-a-z0-9]+)$ /index.php?include=$1 [L]
    Cela aura pour effet de redirger toutes les urls de la forme www.monsite.com/page vers www.monsite.com/index.php?include=page.

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Bonjour,

    le problème avec cette méthode c'est qu'a chaque nouvelle page tu devras modifier le fichier index.php pour y ajouter de nouvelles conditions.
    Oui. La sécurité à un prix.
    Ce surcoût de travail est négligeable dans la plupart des sites web, qui n'ont qu'une taille assez modeste. Mais ce n'est que mon avis...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    un site qui veut être bien référencé doit passer par un URL rewrite. selon moi cela fait partie de la base

Discussions similaires

  1. Enlever les variables dans les URL
    Par Scots dans le forum Développement Web avec .NET
    Réponses: 11
    Dernier message: 01/09/2014, 09h48
  2. les variables dans un url
    Par pacifiquement dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/01/2012, 11h52
  3. [Système] INCLUDE sans passer les variables dans l'URL
    Par bonjour69 dans le forum Langage
    Réponses: 9
    Dernier message: 07/10/2006, 01h20
  4. [VB.NET]Recuperation de variable dans un URL...
    Par seb_acsg dans le forum ASP.NET
    Réponses: 11
    Dernier message: 28/01/2004, 14h01
  5. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53

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