Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2137 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer uniquement la racine du site d'un referer

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer uniquement la racine du site d'un referer

n°1405145
bagu
Posté le 12-07-2006 à 01:51:06  profilanswer
 

Bonjour, je cherche un moyen d'extraire uniquement la racine d'un site.
Exemple :
Le site d'origine est http://www.bagu.biz/modules/news/
Et je souhaite que la page appelée par un lien récupère le referer puis en extrait uniquement ceci : http://www.bagu.biz
 
J'ai bêtement cru qu'il suffisait de faire ceci :
 

Code :
  1. <?php
  2. $uri=$_SERVER['HTTP_REFERER'];
  3. ?>
  4. <a href="<?php echo $uri; ?>sm/" target="_self"><img src="./squirrelmail.jpg" alt="SquirrelMail" style="border: 0;" /></a>
  5. <br /><br />
  6. <a href="<?php echo $uri; ?>im/" target="_self"><img src="./ilohamail.gif" alt="SquirrelMail" style="border: 0;" /></a>
  7. <br /><br />
  8. <a href="<?php echo $uri; ?>rm/" target="_self"><img src="./roundcube.gif" alt="SquirrelMail" style="border: 0;" /></a>


 
Mais cela donne http://www.bagu.biz/modules/news/sm/ (pour le premier lien) au lieu de ce que je souhaite qui serai http://www.bagu.biz/sm/
 
Comment puis-je y parvenir ?
Merci


Message édité par bagu le 12-07-2006 à 02:02:50
mood
Publicité
Posté le 12-07-2006 à 01:51:06  profilanswer
 

n°1405151
Absyn7he
Posté le 12-07-2006 à 02:01:17  profilanswer
 

Code :
  1. <?php
  2. $url = parse_url($_SERVER['HTTP_REFERER']);
  3. $uri = $url[host];
  4. ?>


 
http://fr.php.net/manual/fr/function.parse-url.php


Message édité par Absyn7he le 12-07-2006 à 02:02:18
n°1405156
bagu
Posté le 12-07-2006 à 02:11:43  profilanswer
 

Merci beaucoup...par contre, je viens de voir que si je tape directement l'url, $_SERVER['HTTP_REFERER'] est vide...
 
Comment contourner le probleme ?

n°1405157
Absyn7he
Posté le 12-07-2006 à 02:13:22  profilanswer
 

Si tu tapes directement l'url il n'y a pas de site référent donc la variable est vide.

n°1405160
bagu
Posté le 12-07-2006 à 02:17:57  profilanswer
 

aie...
 
il n'y a pas moyen de récupérer ce qui a été tapé à la manière de $_SERVER['HTTP_REFERER']
 
Comme ca, il me suffirai de mettre un condition disant que si $uri est vide, alors, j'utilise ce qui à été tapé pour récupérer l'hote (ce que je ne sais pas faire non plus...pas la condition, mais la récupération de l'hote dans ces circonstances...)
 
Merci encore de ta patience.

n°1405161
Absyn7he
Posté le 12-07-2006 à 02:19:04  profilanswer
 

Code :
  1. $else = "http://".$_SERVER['HTTP_HOST '].$_SERVER['REQUEST_URI '];


 
http://absynthe.is.free.fr/server2.php


Message édité par Absyn7he le 12-07-2006 à 02:23:48
n°1405165
bagu
Posté le 12-07-2006 à 02:29:20  profilanswer
 

je ne comprend pas trop, en effet, j'ai fais ceci qui ne semble pas fonctionner :
 

Code :
  1. <?php
  2. $url = parse_url($_SERVER['HTTP_REFERER']);
  3. $uri = $url[host];
  4. if (!$uri) {$uri=$_SERVER['HTTP_HOST '].$_SERVER['REQUEST_URI '];}
  5. ?>


Message édité par bagu le 12-07-2006 à 02:30:28
n°1405166
Absyn7he
Posté le 12-07-2006 à 02:32:34  profilanswer
 

Code :
  1. if ($uri == '')
  2. {
  3. $uri="http://".$_SERVER['HTTP_HOST '].$_SERVER['REQUEST_URI '];
  4. }


Message édité par Absyn7he le 12-07-2006 à 02:33:08
n°1405167
Infosactua​lite
Macintosh vs. Windows
Posté le 12-07-2006 à 02:33:52  profilanswer
 

Au risque de passer pour un con ...
 
C'est quoi une URI ?

n°1405168
Absyn7he
Posté le 12-07-2006 à 02:34:54  profilanswer
 
mood
Publicité
Posté le 12-07-2006 à 02:34:54  profilanswer
 

n°1405169
bagu
Posté le 12-07-2006 à 02:39:05  profilanswer
 

Cela ne fonctionne pas non plus...
 
Quand je tape http://www.techni-art.com/webmail/
 
je devrais obtenir pour le lien n°1 http://www.techni-art.com/sm/
 
or là, j'obtiens http://http:///sm/
 
alors je sais d'ou viens le http:// en trop, mais je ne vois pas pourquoi le reste est vide...
 
Voici mon code actuel :

Code :
  1. <?php
  2. $url = parse_url($_SERVER['HTTP_REFERER']);
  3. $uri = $url[host];
  4. if ($uri == '')
  5. {
  6. $uri="http://".$_SERVER['HTTP_HOST '].$_SERVER['REQUEST_URI '];
  7. }
  8. ?>
  9. <a href="http://<?php echo $uri; ?>/sm/" target="_self"><img src="./squirrelmail.jpg" alt="SquirrelMail" style="border: 0;" /></a>
  10. <br /><br />
  11. <a href="http://<?php echo $uri; ?>/im/" target="_self"><img src="./ilohamail.gif" alt="SquirrelMail" style="border: 0;" /></a>
  12. <br /><br />
  13. <a href="http://<?php echo $uri; ?>/rm/" target="_self"><img src="./roundcube.gif" alt="SquirrelMail" style="border: 0;" /></a>


 
Merci

n°1405170
Absyn7he
Posté le 12-07-2006 à 02:41:17  profilanswer
 

Au temps pour moi :
 

Code :
  1. if ($uri == '')
  2. {
  3. $uri=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  4. }

Message cité 1 fois
Message édité par Absyn7he le 12-07-2006 à 02:41:51
n°1405172
bagu
Posté le 12-07-2006 à 02:57:42  profilanswer
 

Argh du coup j'ai cela comme adresse : http://www.techni-art.com/webmail//sm/
 
je pense que je vais modifier mon $uri=$url[host] afin de lui inclure le / et je vais l'enlever des liens...
 
 
Merci encore de ton aide précieuse

n°1405980
Infosactua​lite
Macintosh vs. Windows
Posté le 12-07-2006 à 23:37:14  profilanswer
 

Absyn7he a écrit :

Au temps pour moi :
 

Code :
  1. if ($uri == '')
  2. {
  3. $uri=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  4. }



Au lieu de $uri == '' ca serait mieux ca non ?  
 

Code :
  1. if (empty($uri))
  2. {
  3. $uri=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  4. }


Message édité par Infosactualite le 12-07-2006 à 23:37:35
n°1406018
Absyn7he
Posté le 13-07-2006 à 00:49:45  profilanswer
 

Code :
  1. function empty($foo)
  2. {
  3.     if (trim($foo) == '')
  4.     return TRUE;
  5.     else
  6.     return FALSE;
  7. }


 
Ca revient exactement au même.

n°1406128
nemohp
Adepte du provisoire permanent
Posté le 13-07-2006 à 09:36:02  profilanswer
 

tu devrais utiliser les expressions régulières sinon

n°1406268
bagu
Posté le 13-07-2006 à 12:37:16  profilanswer
 

Au final, le code suivant fonctionne à merveille :
 

Code :
  1. <?php
  2. $url = parse_url($_SERVER['HTTP_REFERER']);
  3. $uri = $url[host]."/";
  4. if ($uri == '/')
  5. {
  6. $uri=$_SERVER['HTTP_HOST'];
  7. $uri= $uri."/";
  8. }
  9. ?>
  10. <a href="http://<?php echo $uri; ?>sm/" target="_self"><img src="./squirrelmail.jpg" alt="SquirrelMail" style="border: 0;" /></a>
  11. <br /><br />
  12. <a href="http://<?php echo $uri; ?>im/" target="_self"><img src="./ilohamail.gif" alt="SquirrelMail" style="border: 0;" /></a>
  13. <br /><br />
  14. <a href="http://<?php echo $uri; ?>rm/" target="_self"><img src="./roundcube.gif" alt="SquirrelMail" style="border: 0;" /></a>


 
Merci à tous pour votre aide ;)


Message édité par bagu le 13-07-2006 à 12:37:35

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer uniquement la racine du site d'un referer

 

Sujets relatifs
[ACCESS] récupérer une requete sous VBPour récupérer l'adresse url actuel
Automatiser fonction d'envoi de mails via site[Divers] Site multi-tout sans "développement"
Site web local[OpenGL] récupérer les pixels (glReadPixels trop lent)
questions sur le construction d'un site phpRecupérer une URL a partir d'une autre qui y pointe par redirection?
Récupérer valeur de la variable qui incremente[Javascript/PHP] Récuperer le contenu d'un array et le passer par GET
Plus de sujets relatifs à : Récupérer uniquement la racine du site d'un referer


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR