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

Apache Discussion :

Comment supprimer le dernier paramètre ?


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut Comment supprimer le dernier paramètre ?
    Bonsoir à tous,

    Je souhaiterai au moyen des directives RewriteCond et RewriteRule supprimer le dernier paramètre d’une adresse si et uniquement si ce paramètre égal à une valeur donnée.

    Par exemple :

    Si l’adresse demandée est :
    page.php?p1=valeur1&p2=OK

    Alors pas de réécriture de l’adresse.


    En revanche si l’adresse demandée est :
    page.php?p1=valeur1&p2=KO

    Alors l’adresse doit être réécrite en page.php?p1=valeur1


    D’avance merci pour vos indications
    A+

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    "réécrite" dans quel sens ? Il faut que l'URL dans la barre d'adresse du navigateur change ?

    Ces URL avec p2=KO viennent d'où ? Pourquoi ne pas plutôt agir côté code qui génère ces URL pour supprimer directement le p2=KO ? Parce que le laisser fait que les utilisateurs verront quand même, malgré la réécriture, ce p2=KO dans la barre de statut du navigateur quand ils survoleront le lien avec la souris.

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut
    D’abord merci pour votre réponse.

    Effectivement ma demande peut paraitre incongrue.

    Je vous explique pourquoi je cherche à faire cela ; mais peut-être m’en dissuaderez-vous :

    Je dispose à mon domicile d’un serveur.
    J’utilise une galerie photo écrite en php. Or je veux limiter l’utilisation de cette galerie à certains utilisateurs.

    Je me suis d’abord orienté vers la limitation gérée au niveau du .htaccess avec AuthUserFile et tout ce qui s’en suit.
    Cela fonctionne parfaitement. Mais je n’aime pas la fenêtre d’authentification qui apparait alors.
    J’ai compris que cette fenêtre ne pouvait pas être modifiée, et qu’il convenait alors de gérer les limitations au niveau de php au moyen de sessions.
    J’ai bien compris comment fonctionne ces sessions. Mais je ne veux pas pour cela modifier chacune des pages de la galerie php (car en cas de mise à jour de la galerie, il faudrait que je réimplante toutes ces modifications).

    J’ai essayé d’utiliser la fonction php_value auto_prepend_file. Mais cela empêche l’affichage correct des pages de ma galerie.

    J’AI DONC PENSE QUE JE POUVAIS CONTOURNER LE PROBLEME EN PROCEDANT AINSI :

    1° - Je redirige toutes les requêtes vers un fichier control.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{QUERY_STRING} !ValidUser=OK
    RewriteCond %{REQUEST_URI} !control.php
    RewriteRule ^(.*)$ control.php [L]
    2° - Dans ma page control.php, je vérifie que l’utilisateur a bien ouvert une session.
    - Si non : je le retourne vers un formulaire d’authentification
    - Si oui : je redirige automatiquement vers la page initialement demandée en ajoutant à la requête initiale le paramètre &ValidUser=OK (Uniquement pour empêcher une redirection permanente vers le fichier control.php)

    3° - La page initialement demandée s’affiche alors correctement. Mais apparait dans la barre d'adresse du navigateur le paramètre &ValidUser=OK. Or c’est précisément ce paramètre que je ne voudrais pas afficher.

    Si vous pensez qu’en termes de sécurité, ma démarche est totalement inappropriée, alors j’arrête la.
    Sinon, existe-t-il au niveau du .htaccess un moyen de faire disparaitre le dernier paramètre ?

    D’avance merci pour vos avis. Bonne journée à tous.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    L'idée est bonne mais il ne faut pas du tout gérer l'authentification par un paramètre d'URL. Ce n'est pas du tout sécurisé : il suffit d'ajouter ce paramètre pour avoir accès aux pages.

    Le fait que le fiction control.php soit systématiquement appelé n'est pas du tout un problème. Au contraire : le fait de l'appeler systématiquement permet de protéger l'accès aux fichierx PHP mais surtout aux fichiers .jpg de ta galerie (si les fichiers de la galeries sont de vrais fichiers JPEG). Par ailleurs, la fonction auto_prepend_file fera en sorte qu'un fichier sera toujours appelé avant l'exécution des scripts PHP. Donc finalement, rediriger chaque requête vers un script control.php ne change pas grand-chose par rapport à auto_prepend_file.

    Bref, je n'utiliserais pas du tout de paramètre dans l'URL pour gérer les accès et je redirigerais toutes les requêtes (a minima celles correspondant à des scripts PHP) vers un script control.php qui fait la vérification de l'authentification.

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut
    Merci pour vos explications dont je prends bonne note.

    Malheureusement pour moi, la galerie photo que j’utilise ne permet pas d’être affichée via la fonction php include.

    Donc, le dernier espoir que j’ai :
    Puis-je déterminer dans le .htaccess que la page « appelante » est ma page control.php ?

    Si oui, je pourrai alors procéder ainsi.
    1° - Toutes les requêtes sont redirigées vers la page control.php sauf si elles proviennent de cette page.

    2° - la page control.php vérifie la session. Si la session est inexistante = redirection vers un formulaire d’authentification. Si la session est existante = redirection vers la page demandée.

    3° - Affiche de la page demandée puisque provenant de la page control.php

    Désolé de ne pas avoir un langage plus adapté, mais je suis totalement néophyte en la matière.

    Espérant avoir su faire comprendre mon problème et vous remerciant à tous pour vos conseils.

    A+

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu entends quoi par "redirection vers la page demandée" ? L'adresse dans la barre du navigateur change ? Si oui, tu vas boucler sans fin : /ma/page.php => réécriture (interne) vers control.php => session OK => redirection du navigateur vers /ma/page.php (i.e. la page qu'il a déjà demandé) => réécriture (interne) vers control.php => etc.

    Pour moi, l'utilisation de la fonction include est un prérequis. Comment sais-tu que "la galerie photo ne permet pas d’être affichée via la fonction php include" ?

  7. #7
    Membre averti
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut
    La galerie que j’utilise s’appelle zenphoto.
    La fonction include ne permet pas un affichage correct. Je l’ai constaté par moi-même par quelques tests rapides. Leur site Internet semble également le confirmer.
    Dans ce cas, j’abandonne ce que je tentais de faire pour chercher une nouvelle approche.
    Merci infiniment pour tes conseils.
    Bonne soirée
    A+
    P.S. : Dois-je mettre quelque chose du style [ABANDONNE] dans l’objet de ma question initiale ou cela n’est-il pas nécessaire ?

Discussions similaires

  1. [CR 2008] Comment supprimer le dernier pied de page de groupe ?
    Par bens67 dans le forum Débuter
    Réponses: 1
    Dernier message: 29/09/2011, 15h00
  2. Comment supprimer le dernier élément d'un combobox
    Par gryffondor8392 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/01/2011, 20h59
  3. Réponses: 4
    Dernier message: 28/05/2008, 14h56
  4. Réponses: 8
    Dernier message: 28/12/2006, 10h51
  5. [Rave] comment faire un état paramétré ?
    Par HRAICHI dans le forum Rave
    Réponses: 2
    Dernier message: 02/10/2003, 10h14

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