récupérer variable # ancre url en php

  • Auteur de la discussion Auteur de la discussion Dixit
  • Date de début Date de début
WRInaute discret
salut @ tous,

le concept -www.monsite.ext/accueil.html#toto

la question je voudrais récupérer en php ce qui suit le #
donc j'ai essaillé
Code:
$var1=explode("/",$REQUEST_URI);
$var2=explode("#",$var1[1);
echo"$var2[1]";
//== j'obtient accuiel.html

:arrow: je récupère juste accueil.html et non toto :?:

et la deuxième question est ce que accueil.html#toto et accueil.html#Titi
pourrais compter pour du duplicate content ?

j'ai vraiment besoin de vos lumières sur tout sur la partie code

merci
 
WRInaute discret
:lol: je continue mon enquete donc en php ce n'est pas possible car les " n'apparaissent pas les logs donc il faut passer par du java script ...
 
WRInaute passionné
C'est normal, les ancres ne concernent que les navigateurs, donc bien évidemment - ce n'est pas du contenu dupliqué, et -les serveurs ne peuvent pas s'en servir (le navigateur n'envoie pas l'ancre au serveur, pas à ma connaissance en tout cas)
 
WRInaute accro
Dj_Apx a dit:
C'est normal, les ancres ne concernent que les navigateurs, donc bien évidemment - ce n'est pas du contenu dupliqué, et -les serveurs ne peuvent pas s'en servir (le navigateur n'envoie pas l'ancre au serveur, pas à ma connaissance en tout cas)

Bien vu, donc Javascript.
 
WRInaute discret
:wink: ca avance je suis sur la piste location.href par contre faudrait t'il recuperer cette valeur du script dans du php bon je verrais ca ce soir je vous tiens au 220v a moins qu'un solutionneur :wink: ne passe avant
 
WRInaute accro
WRInaute discret
merci a vous deux ,
ca marche la solution est :
Code:
<SCRIPT language=javascript>
url = window.location.href;
</SCRIPT>
<?
$adresse='<SCRIPT language=javascript>document.write(url);</SCRIPT>';echo $adresse;
?>
//puis on extrait comme dans le début du post
:wink:
 
WRInaute passionné
HEIN ???
:(
n'importe quoi.

Bon, c'est vraiment parce que je m'emm erde au boulot, hein...

tu ne peux pas exécuter un javascript sur un serveur :roll:
là ce qui se passe avec ton bout de code :
le serveur fait ceci :

Envoyer du code html :
Code:
<SCRIPT language=javascript>
url = window.location.href;
</SCRIPT>
Mettre quelque chose dans la variable adresse.
Cette variable va contenir le texte
"<SCRIPT language=javascript>document.write(url);</SCRIPT>"
Ce script n'est PAS exécuté.

echo adresse, autrement dit : envoyer à la suite du code html précédent :
Code:
<SCRIPT language=javascript>document.write(url);</SCRIPT>

Une fois arrivé sur le navigateur du client,
on va, si javascript est désactivé, voir le code source du javascript.
Si javascript est activé, on va voir l'url de la page.

A aucun moment le serveur n'aura eu connaissance de cette url.
 
WRInaute discret
selon les types d'ancres passées dans l'url je choisis tel ou tel include dans la suite du script php :oops:
mais vu l'explication c'est impossible !
 
WRInaute discret
:? donc c'est dangereux ou niveau des includes je vais d'ailleurs revoir
if(file_exists

merci tant pis un post long pour grand chose :oops:
 
WRInaute passionné
Dixit a dit:
selon les types d'ancres passées dans l'url je choisis tel ou tel include dans la suite du script php :oops:
mais vu l'explication c'est impossible !
tsss
il fallait passer tes variables en GET comme tout le monde : ?page=nomdelapage :roll:

Mais c'est un gruyère niveau sécurité, donc tu fais bien de changer d'avis.
 
WRInaute passionné
Ca dépend par qui.
Pas par quelqu'un qui veut récupérer une ancre en paramètre dans php :wink: - sans vouloir te vexer, Dixit, mais combler de façon fiable une faille comme celle des includes en $_GET, ça me semble un peu ambitieux pour ton niveau actuel, d'autant que tu peux recourir à la méthode "propre" :

tu fais une page différente par page différente que tu souhaites avoir
dans chaque page tu fais un "include" pour ton en-tete, ton menu, ton pied de page.

Ca c'est sans risque et tellement plus simple :!:
 
WRInaute discret
"Pas par quelqu'un qui veut récupérer une ancre en paramètre dans php - sans vouloir te vexer, Dixit, mais combler de façon fiable une faille comme celle des includes en $_GET, ça me semble un peu ambitieux pour ton niveau actuel"

Hum, je pense que plutôt que de lui dire ça comme ça il aurait fallu lui montrer comment sécuriser son script ? enfin bon t'as pas tort y'a tout à refaire mais bon c'est quand même dit d'une manière crue ^^
 
WRInaute passionné
Je ne pensais pas avoir été vexant, désolé :?
Mais bon, moi-même je ne tenterais pas de faire un script utilisant des includes à la volée, parce que je ne pourrais pas garantir du résultat, alors je ne peux pas les lui conseiller.

Il y a eu un sujet hier à ce propos, et aucune des méthodes proposées par les membres n'était suffisante pour vraiment colmater les failles... ça reste trop risqué pour un débutant ou même un "amateur éclairé".
 
WRInaute discret
j'etais endormi hier , j'ai pas fait gaffe que le java est cote client et que le script php cote serveur ...en bref

mon seul interet etait que vis a vis des moteurs de recherche
que ce soit page.html#toto ou # #titi était la mm page
en passant par ?page=toto et page=titi ca fait deux pages pour les moteurs ... c'était juste pour ca
 
WRInaute passionné
OK ;)
Tu voulais concentrer le pagerank sur une page unique :)

A la limite, tu pouvais toujours faire un javascript qui redirige la page vers ?page=toto en récupérant toto dans l'ancre. Mais c'est un chtit peu tordu lol
 
Nouveau WRInaute
Depuis le temps tu n'en as certainement plus besoin mais je suis tombé sur ce sujet en cherchant la même chose que toi et j'ai trouvé la solution ailleurs.
On peut en fait récupérer l'ancre très facilement en js, elle est contenue dans la variable hash, par contre elle y est avec son # qu'il faut donc virer
Code:
var ancre= window.location.hash.replace('#','');
 
Discussions similaires
Haut