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 :

[.htaccess] RewriteRule de variable dans une url


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [.htaccess] RewriteRule de variable dans une url
    Bonjour,

    Cela fait plusieurs jours que je cherche une solution.
    J'ai une requête en GET du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /liste-inscrits.php?date=2016-08-07&am_pm=Apr\350s%20midi&club=M_M
    Je voudrai renommer le &am_pm=Apr\350s%20midi en &am_pm=Apresmidi.

    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 435
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 435
    Points : 15 809
    Points
    15 809
    Par défaut
    je pense que ça serait plus simple d'enlever les accents dans le script PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Re
    Merci, mais j'ai plus de 700 pages à modifier.
    Merci pour ta proposition, mais je vais l'oublier rapidement et j'airai souhaité que tu me trouve une solution à mon pb.
    A+

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 435
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 435
    Points : 15 809
    Points
    15 809
    Par défaut
    je rajoute encore une petite couche de PHP et après je n'insiste plus : il est possible d'inclure automatiquement un script PHP au début de chaque page pour faire cette correction
    http://php.net/manual/fr/ini.core.ph...o-prepend-file

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Re
    Merci pour cette info, mais je mets quoi dans ce fichier ?

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 435
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 435
    Points : 15 809
    Points
    15 809
    Par défaut
    s'il s'agit juste de l'argument "am_pm", ça peut se faire comme ça :
    https://framabin.org/?408a769551164f...9oFL1Y5xISAMU=

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Re
    Merci, mais je n'ai pas tout compris.
    Dans le message ci dessus tu me dis de mettre ce fichier au début de chaque page, mais le GET est envoyé après donc la correction ne se fera pas.

  8. #8
    Membre actif Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 127
    Points : 210
    Points
    210
    Par défaut
    Bonjour Nitrox, bonjour Mathieu, bonjour à tous,

    Si je résume la proposition de Mathieu, il suggère de passer par une fonction avant chaque lecture/création de ton url. Fonction qui épurerai ton url des caractères accents. Comme tu as pas envie de repasser sur tes 700 pages, il fait référence à auto_prepend_file.

    Si on lit bien la doc citée par Mathieu, on peut lire ceci:

    Titre de la doc =
    Description des directives internes du php.ini
    ==> php.ini est le fichier de configuration du moteur PHP. Ce fichier contient des parametres. auto_prepend_file en est un.

    Si on lit le petit paragraphe relatif au paramètre auto_prepend_file
    auto_prepend_file =
    Spécifie le nom d'un fichier qui sera automatiquement parcouru avant le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction require, donc include_path est utilisé.

    ==> donc, si tu créer une page "correction_accents_pour_url.php", que tu y insère la fonction "retraitAccents", et sa ligne GET. Alors ce bout de code sera appelé à chaque exécution de page php.

    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
     
    $_GET["am_pm"] = retraitAccents($_GET["am_pm"]);
     
    	function retraitAccents($texte) {
    		$texte = str_replace(
    			  ["ø", "š", "ž", "µ", "ð",  "þ",  "ĉ", "ĝ", "ĵ", "ŝ", "ĥ", "ŭ", "ğ", "ş", "ı", "ß" ]
    			, ["o", "s", "s", "u", "dh", "th", "c", "g", "j", "s", "h", "u", "g", "s", "i", "ss"]
    			, $texte
    		);
     
    		$texte = htmlentities($texte, ENT_NOQUOTES, "UTF-8");
    		$texte = preg_replace("#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml|uro)\;#", "\1", $texte);
    		$texte = preg_replace("#\&([A-za-z]{2})(?:lig)\;#", "\1", $texte); // pour les ligatures comme "œ"
     
    		$texte = preg_replace("#\&[^;]+\;#", "", $texte); // supprime les autres entités
     
     
    		return $texte;

    @Nitrox: La valeur de la variable GET est écrasée par le résultat renvoyée par la fonction "retraitAccents".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET["am_pm"] = retraitAccents($_GET["am_pm"]);
    Si tu souhaite modifier ton champs "am-pm" avant qu'il ne soit envoyée,tu peux faire la même démarche, mais en corrigeant la valeur avant qu'elle ne soit envoyée. En utilisant le parameetre php.ini : auto_append_file

    @Mathieu : Ai je bien résumé et expliqué ce que tu voulais dire ?

    Sylvain

Discussions similaires

  1. comment passer plus d'une variable dans une URL
    Par death_style dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2007, 23h57
  2. Réponses: 10
    Dernier message: 26/07/2007, 15h16
  3. [Javascript][get]Enlevez des variables dans une url
    Par bouba83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/12/2006, 15h31
  4. Problème d'envoie de variables dans une url
    Par xenos dans le forum Langage
    Réponses: 9
    Dernier message: 29/11/2006, 00h48
  5. inserer une variable dans une url
    Par elmoino dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/07/2006, 13h34

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