Page 1 sur 1
Recuperer une partie d une URL
Posté : 06 déc. 2008, 12:43
par Emy
Bonjour,
Comment recuprer une partie d une URL de mon site? par exemple je veux recuperer tout ce qui est apres =
index.php?menu=accueil
je voudrais recuperer accueil pour savoir l utilisateur se trouve sur quel page
merci
Posté : 06 déc. 2008, 13:27
par sadeq
Bonjour,
Généralisons en disant que tu as une URL de type :
ou
Code : Tout sélectionner
http://www.xxxxxxxx.xxx/xxx/xxxx.php?xxxxx=xxxxx&menu=accueil&xxxxx
Donc, le critère qui t'intéresse (accueil) se trouve toujours après la partie "menu=" et se termine par un "&" s'il y a d'autres paramètres dans l'URL sinon il se termine par un vide.
C'est ça la clé de voute pour délimiter le mot qui t'intéresse. On entend bien que ce que tu cherches à récupérer est un nom de page, dans cet exemple il s'agit de la page "accueil" mais dans l'absolu c'est un nom de page quelconque.
Donc, voici le modèle du critère recherché :
- 1. le mot recherché doit commencer par "menu="
2. il doit contenir autant de caractères que possible sauf le caractère & (qui désigne sa fin)
3. il peut se terminer par le caractère & ou pas
Un tel modèle peut être représenté par le format logique suivant:
menu=(plusieurs caractères où il n'y a pas &)& 0 ou 1 fois
Le format avec lequel j'ai écrit ce modèle est un format
d'expression régulière. En PHP, on peut utiliser des fonctions de recherche basées sur des expressions régulières pour justement répondre à ce genre de besoin.
Voici comment utiliser ce type de fonctions sous PHP:
<?php
// url de recherche
$url1 = "http://www.xxxxxxxx.xxx/xxx/xxxx.php?menu=accueil&xxxxx";
$url2 = "http://www.xxxxxxxx.xxx/xxx/xxxx.php?xxxxx=xxxxx&menu=accueil&xxxxx";
// recherche dans url1
preg_match("#menu=([^&]*)&?#i", $url1, $resultat); // la fonction recherche tout ce qui est entouré entre ()
// voyons le contenu du tableau $resultat
echo "<pre>"; print_r($resultat); echo "</pre>";
// le mot recherché si trouvé est placé donc dans la case [1] du resultat
echo "<p>mot trouvé dans url1: " . $resultat[1] . "</p>";
// recherche dans url2
preg_match("#menu=([^&]*)&?#i", $url2, $resultat);
echo "<p>mot trouvé dans url2: " . $resultat[1] . "</p>";
?>
Voilà.
Posté : 07 déc. 2008, 00:31
par Invité
Merci Sadeq, c'est tout un cours, je vais le reviser et essayer de le faire moi meme

Posté : 07 déc. 2008, 01:05
par chrislabricole
<?php
echo $_GET['menu'];
?>
???
Posté : 07 déc. 2008, 02:32
par sadeq
T'as raison
chrislabricole, c'est peut être ça ce qu'il cherche à faire tout simplement : récupérer le paramètre menu pour savoir quelle page a été demandée.
Moi j'étais partie sur une recherche dans une chaîne (url) qu'il a. J'avoue qu'après relecture de son message, je crois que ta réponse est la plus appropriée.
Qu'en dis-tu Emy ?
Posté : 17 déc. 2008, 13:05
par Invité
Etant un Admin, si je veux savoir ce qu'un utilisateur se positionne sur quelle page?
Posté : 17 déc. 2008, 14:42
par Hywan
Quelle est la différence entre un pigeon ?
Posté : 17 déc. 2008, 15:00
par Invité
Quelle est la différence entre un pigeon ?
Si je fais ce que Sadeq et chrislabricole ont dit, je vais obtenir ou je me positionne, mais la je veux savoir ou autrui se positionne

Posté : 17 déc. 2008, 15:06
par Hywan
Pas avec la méthode de Saqed. Où se trouvent tes URL exactement ? Elles proviennent d'une basée de données ?
Posté : 17 déc. 2008, 15:36
par Invité
Pas avec la méthode de Saqed. Où se trouvent tes URL exactement ? Elles proviennent d'une basée de données ?
Non pas d une base de donnee, mais il suffit de recuprere ce qui est apres ?menu= pour savoir ce que l'utilisateur est entrain de faire
Posté : 17 déc. 2008, 15:44
par Hywan
Et comment tu connais l'URL de l'utilisateur ?
C'est pas clair ton histoire. Soit ton script s'exécute sur la page de l'utilisateur (front-end ou front-office), et un simple var_dump($_GET['menu']); est suffisant, soit tu es sur une page administrateur (back-end ou back-office) et tu dois lire les sauvegardes de liens quelque part.
Posté : 17 déc. 2008, 15:52
par Invité
Et comment tu connais l'URL de l'utilisateur ?
C'est pas clair ton histoire. Soit ton script s'exécute sur la page de l'utilisateur (front-end ou front-office), et un simple var_dump($_GET['menu']); est suffisant, soit tu es sur une page administrateur (back-end ou back-office) et tu dois lire les sauvegardes de liens quelque part.
donc je dois sauvegarder les liens dans ma BD et apres receuperer par LIMIT 1 et comme ca j'aurais ce que l'utilisateur fait pour le moment
Posté : 17 déc. 2008, 16:03
par Hywan
Sauf que l'autre solution n'est pas mauvaise non plus. Tout dépend de ce que tu fais des liens : des statistiques par exemple ? Dans ce cas, c'est mieux de stocker effectivement, et tu traites plus tard, dans le panneau administrateur (histoire de ne pas embêter l'utilisateur).
Posté : 17 déc. 2008, 16:25
par Invité
Sauf que l'autre solution n'est pas mauvaise non plus. Tout dépend de ce que tu fais des liens : des statistiques par exemple ? Dans ce cas, c'est mieux de stocker effectivement, et tu traites plus tard, dans le panneau administrateur (histoire de ne pas embêter l'utilisateur).
ce que je voudrais faire c'est de controler mes utilisateurs, par exemple: si je demande a une personne d'effectuer un travail, il doit le faire et ne pas rentrer sur des pages pour s'amuser.