Comment récupérer l'url d'une page php ?

Résolu
Bonjour,
je cherche comment récupérer l'url de la page web, dans laquelle une personne se trouve. Quelle fonction existe-t-il en php ?
Merci d'avance pour votre aide.

8 réponses

  1. Si tu es en PHP :

    <?
    $monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    ?>

    Référencement naturel avec https://www.rhinostone.com/
    https://www.rhinostone.com/fra/referencement/referencement-naturel.html
    1. ou tout simplement avec la variable _SERVER["SCRIPT_URI"]
      <?
      $monUrl = _SERVER["SCRIPT_URI"];
      ?>
    2. Pas bon du tout, il manque deux '$' et en plus rien ne garantit que $_SERVER["SCRIPT_URI"] soit initialisé.

      Ça dépend fortement de la configuration du serveur, suivant CGI ou non, paramétrage, etc...

      Déjà mieux, la solution précédente :
      $monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

      Mais après, c'est encore faux car ça ne marchera pas non plus dans certains cas (ici https).
    3. Bonjour,

      $_SERVER['REQUEST_URI'] donne le nom de la script PHP mais si tu veux savoir la page HTML ou autre qui l'a appelée (généralement plus utile pour faire des validations), utiliser la variable $_SERVER['HTTP_REFERER']
    4. et dans le cas de http://graveyardofpain.free-h.net/html/index.html comment fait-on ? es-ce que la variable $_SERVER['HTTP_HOST'] vaut bien graveyardofpain.free-h ou vaut-elle free-h (dans l'exemple ?) ou avec peut-être .net ?
    5. ENCORE MIEUX =>

      dirname($_SERVER['SERVER_PROTOCOL']) . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']

      =D comme cela même le protocole est géré ;) normalement ça marchera dans tous les cas !!!!
  2. Merci c'est gars, ça marche du tonnerre !

    Grâce à vous, j'ai pu faire ce bout de code:
    Si jamais mon lien est "/category/ietls/" ou bien "/category/tage-mage", alors l'image n'apparaît pas.

    <?php if (($_SERVER['REQUEST_URI'] != "/category/ielts/") && ($_SERVER['REQUEST_URI'] != "/category/tage-mage/")) {?>
            	<img class="img-responsive" style="width:196px;" src="<?php echo get_template_directory_uri();  ?>/images/headers/kaplan-logo.png"  />
    	<?php } ?>
    
    1. Il y a beaucoup plus optimisé...
      Notamment en créant un routeur
    2. Tu peux donner le code ou afficher la marche à suivre dans ce cas ?
  3. Bonjours, le script proposé par Viktor56 est très bien et fonctionne MAIS celui ci oblige la modification de l'URL la rendant asser laide il faut bien avouer.
    Serai-t-il possible d'arriver au même résultat mais sans modifier cette l'URL de la page ?

    Merci d'avance

    EDIT:

    <?php
    $adresse=$_SERVER['REQUEST_URI'];
    echo '' .$adresse."<br />";
    ?>

    Correspond a ce que je voulais :).

    Merci beaucoup et au plaisir.
    1. La fonction : $_SERVER['REQUEST_URI']
      _____________________
      http://fr.goldannonces.com - http://www.mosaiquepub.com
      1. tu veux sûrement dire:
        variable php superglobale ...
        ou plus sobrement:
        variable serveur
    2. un peu plus de précision avec ce script :

      <?php
      if (isset($_GET['adresse'])) {
        $adresse=$_GET['adresse'];
        $variable=$_GET['variable'];
          echo 'L\'adresse de la page est : ' .$adresse."<br />";
          echo 'Le contenu de la variable est : '.$variable;
      } else {
      $variable='voili voulou';
      // script debut
        echo "<script type=\"text/javascript\">\n";
        echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
             . "&adresse=\" + window.location.href + \""
             . "&variable=\" + '".$variable."';\n";
        echo "</script>\n";
        exit();
      }
      ?>

      1. Parfait merci !
      2. Très bien le script !
      3. juste lol quoi tu te retrouve avec 2 fois la meme info dans l'url... pas bien
      4. J'me demande juste à quoi sert la variable "$variable", et surtout comment l'enlever..
      5. Pensez à protéger les variables des $_GET ! Injection php ou autres possibles
    3. salut blaze ,
      merci a ricric pour son conseil,
      j ai eu le meme probleme pour récupérer l url de la page courante car mon site www.vaillant-boxing.com se fait a partir d un templete et l encrage( du top) se faisait toujours sur la premiere page(home) et non la page courante.Alors pour obtenir la page courante il faut te servir de : $_SERVER['REQUEST_URI'] en mettant le nom de ton site devant tu aura l 'url de la page complete.J espere que cela t' indera.
      a+
      1. Normalement, lorsque le code php s'exécute, c'est que l'utilisateur se trouve justement sur la page en question (celle dans laquelle tu as écrit ton code php).
        1. et mal répondre, c'est comme ne pas répondre, sauf que ça engendre plus de questions que ça n'en résoud. :) CQFD
        2. Si tu utilise un include alors l'URI change :)