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

Résolu
blaze -  
Maitre2B Messages postés 341 Date d'inscription   Statut Membre Dernière intervention   -
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

Rhinostone
 
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
Gromit
 
ou tout simplement avec la variable _SERVER["SCRIPT_URI"]
<?
$monUrl = _SERVER["SCRIPT_URI"];
?>
0
logintotopass1234
 
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
Thierry
 
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
neo_selen Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   15
 
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
RwanesS
 
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
hvlfun
 
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
Viktor56 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   23
 
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
ratikuss Messages postés 1996 Date d'inscription   Statut Membre Dernière intervention   262
 
Parfait merci !
0
Masterfree Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   4
 
Très bien le script !
0
Anonymous ahahaah
 
juste lol quoi tu te retrouve avec 2 fois la meme info dans l'url... pas bien
0
xChicken Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
J'me demande juste à quoi sert la variable "$variable", et surtout comment l'enlever..
0
tirouit
 
Pensez à protéger les variables des $_GET ! Injection php ou autres possibles
0
aminovic41 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   20
 
La fonction : $_SERVER['REQUEST_URI']
_____________________
http://fr.goldannonces.com - http://www.mosaiquepub.com
10
neo_selen Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   15
 
tu veux sûrement dire:
variable php superglobale ...
ou plus sobrement:
variable serveur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
celtk
 
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
Maitre2B Messages postés 341 Date d'inscription   Statut Membre Dernière intervention   33
 
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
PhpMaster
 
Il y a beaucoup plus optimisé...
Notamment en créant un routeur
0
Maitre2B Messages postés 341 Date d'inscription   Statut Membre Dernière intervention   33
 
Tu peux donner le code ou afficher la marche à suivre dans ce cas ?
0
jebok Messages postés 358 Date d'inscription   Statut Membre Dernière intervention   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).
-6
neo_selen Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   15
 
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
Dixmis
 
Si tu utilise un include alors l'URI change :)
0
ricric Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   7
 
Bonjour
Tu trouveras ton bonheur à cette adresse :
http://www.nexen.net/docs/php/annotee/reserved.variables.server.php
-8