Page 1 sur 1

Passage de caractère special dans une url

Posté : 22 sept. 2005, 10:56
par aqua007
Bonjour,

Je bloque sur un truc tout bête là. Passer le caractère '#' dans une url. Quand je fais un GET de la variable, elle est vide quand je passe ce caractère :/ ça marche avec d'autres caractères pourtant (", $ etc..)
Y'a-t-il moyen de le recup ou c'est pas possible ?

Merci.

Posté : 22 sept. 2005, 11:57
par Cyrano
Utilise urlencode() pour créer les liens et urldecode() pour récupérer les paramètres.
MAIS : le "#" est particulier dans une url, il signifie le pointage vers une ancre dans la page. Une url du genre www.monsite.com/index.php#rubrique3 va ouvrir la page index et positionner l'ancre "rubrique3" en haut de la fenêtre. Cette ancre peut être soit un attribut name dans une balise <a> soit un attribut "id" dans n'importe quelle balise html. Si donc au milieu de ta page tu as par exemple une balise qui ressemble à <h3 id="rubrique3">3 : le titre de la troisième rubrique</h3>, quand tu ouvrira ta page avec une url comme montré ci-dessus, ce titre <h3> sera la première ligne affichée dans la page et il faudra utiliser la barre de défilement vertical pour voir le haut de la page.

Posté : 22 sept. 2005, 12:55
par aqua007
Waip, c'est ce que j'avais déjà fait mais ça voulais pas marcher. En faite un urlencode transforme le '#' en '%23' dans le code source de la page mais quand je clique sur le lien c'est '#' qui est donné dans l'url et je peu pas le récuperer :/

Pour l'instant le seul truc que j'ai trouvé c'est de faire 2 urlencode de suite pour transformer le '%23' en '%2523' dans le code source ce qui donne '%23' dans le lien de la page. Quand je recup le '%23' en GET dans ma page appelée et que je l'affiche j'ai bien le caractère '#' à l'écran. Mais a mon avis doit y avoir une autre solution, y'a un truc que je doit pas bien faire :S car 2 urlencode de suite -__-

Posté : 22 sept. 2005, 17:24
par Cyrano
Alors fais urlencode une fois, mais juste après, utilise str_replace("%23", "#", $ton_url) avant de l'utiliser

Posté : 22 sept. 2005, 18:17
par aqua007
Merci ;) :merci: c'est GG