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

Signaler
-
Maitre2B
Messages postés
342
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
15 juillet 2019
-
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.
A voir également:

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 77779 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']
neo_selen
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
13
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();
}
?>

ratikuss
Messages postés
2040
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
14 décembre 2016
224
Parfait merci !
Masterfree
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
xChicken
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
neo_selen
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
13
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
342
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
15 juillet 2019
21
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
Maitre2B
Messages postés
342
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
15 juillet 2019
21
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).
neo_selen
Messages postés
168
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
13
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