Messages: 12

Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 11:45

Hello,

Je cherche à intercepter l'url de l'utilisateur pour un traitement (statistiques d'accès) avant d'afficher l'url demandée.

En d'autres termes, j'ai fait ça:
htaccess:
RewriteEngine on
RewriteRule .* process.php [nc,L]


et dans le fichier process.php, je fais des traitements puis un header('Location: '.$_SERVER[SERVER_NAME].$_SERVER['REQUEST_URI']);

Le problème, biensûr, c'est que lorsque le header est envoyé, il est intercepté par l'htaccess et du coup tout part dans une boucle infinie :(

J'imagine que c'est un problème de newbie... ça tombe bien: j'en suis un :lol:

Thanx, mhammout
Haut
10 Réponses
Messages: 1025

Enregistré le: 21 Juil 2003

Message le Mer Fév 15, 2006 12:00

Faut soit faire un coockie pour différencier le premier chargement de la page, soit les sessions.

A+
Haut
Messages: 12

Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 12:05

Hello,

Merci pour ta réponse mais n'y a-t-il pas un moyen de différencier un utilisateur du header? Car si je fais un cookie ou une session et qu'un user tape 2 fois l'url, je ne pourrai pas l'intercepter 2 fois.
Je ne veux pas l'intercepter seulement si elle provient du fichier process.php...
Haut
Messages: 1025

Enregistré le: 21 Juil 2003

Message le Mer Fév 15, 2006 12:08

Tu peux jouer avec le referer, mais je doutes que ce soit plus efficasse que les sessions.
Haut
Messages: 273

Enregistré le: 21 Oct 2005

Message le Mer Fév 15, 2006 13:35

Histoire de contourner le problème, tu n'as pas accès aux log apache ? c'est tout de même plus pratique pour faire les stats, avec un outil comme awstats par exemple, directement depuis les logs, non ?
Haut
Messages: 12

Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 13:51

L'histoire est que je voulais développer un script PHP de stats autant portable que possible et sans qu'il soit nécessaire de mettre sur chaque page d'un site l'utilisant quelque chose comme <?php include('stat/stat.php');?> Du coup, pouvoir le faire via l'url rewriting aurait été parfait, mais c'est visiblement pas (ou difficlement) possible...

Je vais regarder du côté du REFERRER...

Merci,
mhammout

PS: j'ai découvert l'url rewriting aujourd'hui, alors si je raconte des tracks, sorry, j'suis newbie ;)
Haut
Messages: 12

Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 13:51

tracks = cracks, vous aurez corrigé!
Haut
Messages: 2192

Enregistré le: 2 Avr 2005

Message le Mer Fév 15, 2006 14:14

bon!

Le fichier htaccess ne sert pas uniquement à faire du rewriting. Tu peux également y mettre des directives apache (comme dans httpd.conf) et des directives php.

Dans le cas qui t'intéresse, tu peux mettre:
Code: Tout sélectionner
php_value auto_prepend_file /chemin_vers_ficher_a_inclure/fichier_a_inclure.php


Afin que tu comprenne mieux, voici un extrait de la doc PHP:
auto_prepend_file string
Spécifie le nom d'un fichier qui sera automatiquement ajouté avant le fichier principal. Le fichier est inclus comme s'il avait été appelé avec la fonction include , donc include_path est utilisé.
Haut
Messages: 12

Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 14:19

Je viens justement de mettre la main sur auto_prepend_file et ça fonctionne tip-top! Seul point négatif: cela ne fonctionnera que pour des fichiers php semble-t-il, mais soit, c'est déjà suffisant pour moi!

Merci pour tout,
mhammout
Haut
Messages: 2415

Enregistré le: 11 Fév 2005

Message le Mer Fév 15, 2006 21:43

fandecine a écrit:bon!

Le fichier htaccess ne sert pas uniquement à faire du rewriting. Tu peux également y mettre des directives apache (comme dans httpd.conf) et des directives php.

Dans le cas qui t'intéresse, tu peux mettre:
Code: Tout sélectionner
php_value auto_prepend_file /chemin_vers_ficher_a_inclure/fichier_a_inclure.php


Afin que tu comprenne mieux, voici un extrait de la doc PHP:
auto_prepend_file string
Spécifie le nom d'un fichier qui sera automatiquement ajouté avant le fichier principal. Le fichier est inclus comme s'il avait été appelé avec la fonction include , donc include_path est utilisé.

Ca marche en mutualisé cette petite merveille ?
Haut
Messages: 2192

Enregistré le: 2 Avr 2005

Message le Jeu Fév 16, 2006 10:12

Dj_Apx a écrit:Ca marche en mutualisé cette petite merveille ?


Des mutualisés, il y en a des tonnes! Il faut que tu essaye... :wink:
Haut