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
    315
    1. ou tout simplement avec la variable _SERVER["SCRIPT_URI"]
      <?
      $monUrl = _SERVER["SCRIPT_URI"];
      ?>
      0
    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).
      0
    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']
      0
    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 ?
      0
    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 !!!!
      0
  2. 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+
    46
    1. 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();
      }
      ?>

      21
      1. Parfait merci !
        0
      2. Très bien le script !
        0
      3. juste lol quoi tu te retrouve avec 2 fois la meme info dans l'url... pas bien
        0
      4. J'me demande juste à quoi sert la variable "$variable", et surtout comment l'enlever..
        0
      5. Pensez à protéger les variables des $_GET ! Injection php ou autres possibles
        0
    2. La fonction : $_SERVER['REQUEST_URI']
      _____________________
      http://fr.goldannonces.com - http://www.mosaiquepub.com
      10
      1. tu veux sûrement dire:
        variable php superglobale ...
        ou plus sobrement:
        variable serveur
        0
    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.
      6
      1. 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 } ?>
        
        0
        1. Il y a beaucoup plus optimisé...
          Notamment en créant un routeur
          0
        2. Tu peux donner le code ou afficher la marche à suivre dans ce cas ?
          0
      2. 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).
        -6
        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
          0
        2. Si tu utilise un include alors l'URI change :)
          0