Comment récupérer l'url d'une page php ? [Résolu/Fermé]

Signaler
-
Messages postés
343
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
11 avril 2020
-
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

Si tu es en PHP :

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

Référencement naturel avec http://www.rhinostone.com
http://www.rhinostone.com/fra/referencement/referencement-naturel.html
315
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61797 internautes nous ont dit merci ce mois-ci


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).
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']
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
14
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 ?
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 !!!!
c'est un peu plus compliqué pour que ça marche à tous les coups (https, port, proxy), cf
https://github.com/Jasig/phpCAS/blob/1.3.1/source/CAS/Client.php#L3068
/**
* Try to figure out the server URL with possible Proxys / Ports etc.
*
* @return string Server URL with domain:port
*/
function _getServerUrl()
{
$server_url = '';
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
// explode the host list separated by comma and use the first host
$hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);
$server_url = $hosts[0];
} else if (!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) {
$server_url = $_SERVER['HTTP_X_FORWARDED_SERVER'];
} else {
if (empty($_SERVER['SERVER_NAME'])) {
$server_url = $_SERVER['HTTP_HOST'];
} else {
$server_url = $_SERVER['SERVER_NAME'];
}
}
if (!strpos($server_url, ':')) {
if ( ($this->_isHttps() && $_SERVER['SERVER_PORT']!=443)
|| (!$this->_isHttps() && $_SERVER['SERVER_PORT']!=80)
) {
$server_url .= ':';
$server_url .= $_SERVER['SERVER_PORT'];
}
}
return $server_url;
}
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+
Messages postés
71
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
24 février 2012
22
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();
}
?>

Messages postés
2004
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
14 décembre 2016
228
Parfait merci !
Messages postés
172
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 avril 2020
4
Très bien le script !

juste lol quoi tu te retrouve avec 2 fois la meme info dans l'url... pas bien
Messages postés
16
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
11 décembre 2012

J'me demande juste à quoi sert la variable "$variable", et surtout comment l'enlever..
Pensez à protéger les variables des $_GET ! Injection php ou autres possibles
Messages postés
38
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
30 août 2013
19
La fonction : $_SERVER['REQUEST_URI']
_____________________
http://fr.goldannonces.com - http://www.mosaiquepub.com
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
14
tu veux sûrement dire:
variable php superglobale ...
ou plus sobrement:
variable serveur
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.
Messages postés
343
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
11 avril 2020
25
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 } ?>
Il y a beaucoup plus optimisé...
Notamment en créant un routeur
Messages postés
343
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
11 avril 2020
25
Tu peux donner le code ou afficher la marche à suivre dans ce cas ?
Messages postés
375
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
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).
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
14
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
Si tu utilise un include alors l'URI change :)
Messages postés
35
Date d'inscription
jeudi 12 mai 2005
Statut
Membre
Dernière intervention
11 mai 2006
7
Bonjour
Tu trouveras ton bonheur à cette adresse :
http://www.nexen.net/docs/php/annotee/reserved.variables.server.php