Certaines pages php de mon site peuvent être appelées depuis plusieurs
autres pages et, afin de pouvoir revenir à la page d'appel, celle-ci est
passée en paramètre (méthode GET) à la suite de l'url comme ci-dessous :
echo "<a href=\"calc_temp.php?retour=thermo00.php\">Température à partir
de la tension</a>\n";
Et, dans la page appelée, je récupère la page de retour par :
if (empty($_GET['retour'])) $retour="thermo00.php";
else $retour=$_GET['retour'];
Jusque là, pas de problèmes, ça fonctionne à priori correctement sous
Mozilla 1.7.3, Opera 7.23 et IE6.
Un (petit) problème se pose lorsque le lien de retour doit être effectué
à un endroit précis (ancre) de la page et, après quelques temps de
"galère", j'ai appliqué la solution suivante en utilisant urlencode,
uniquement dans le lien de la page d'appel, sans rien changer dans la
page appelée :
echo "<a
href=\"calc_temp.php?retour=thermo04.php".urlencode("#calculer")."\">Calculer
les températures à partir d'une tension</a>\n";
Là aussi, à priori, ça fonctionne correctement, mais est-ce la bonne
méthode ?
J'ai bien essayé d'encoder l'url complète :
echo "<a
href=\"".urlencode("calc_mv.php?retour=thermo04.php#calculer")."\">Calculer
les tensions à partir d'une température</a></p>\n";
mais, en local avec EasyPHP, ça me donne une erreur d'accès, dès le
début, donc sans doute sur le $_GET :
Forbidden
You don't have permission to access
/aviatechno/thermo/calc_mv.php?retour=thermo04.php#calculer on this
server.
Quelle pourrait-être la bonne méthode ?
Merci.
--
= Dominique Ottello = http://www.ottello.net
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
echo "<a href="calc_temp.php?retour=thermo04.php".urlencode("#calculer")."">Calculer les températures à partir d'une tension</a>n";
Là aussi, à priori, ça fonctionne correctement, mais est-ce la bonne méthode ?
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode. De même si le contenu de $calculer ne comporte que des lettres ou des chiffres.
Bon, je vais supposer que tu voulais "$calculer" et qu'il peut y avoir des minuscules accentuées par exemple. Voici un code équivalent au tien, quoique je l'aie réécrit d'une façon que je trouve plus lisible.
echo "<a href='calc_temp.php?retour=thermo04.php" . urlencode("#$calculer") . "'>Calculer les températures à partir d'une tension</a>n";
Pour ne pas encoder le '#', il vaudrait mieux ceci :
echo "<a href='calc_temp.php?retour=thermo04.php#" . urlencode("$calculer") . "'>Calculer les températures à partir d'une tension</a>n";
Voire :
echo "<a href='calc_temp.php?retour=thermo04.php#" . urlencode($calculer) . "'>Calculer les températures à partir d'une tension</a>n";
J'ai bien essayé d'encoder l'url complète :
echo "<a href="".urlencode("calc_mv.php?retour=thermo04.php#calculer")."">Calculer les tensions à partir d'une température</a></p>n";
Alors là, c'est pire. Non seulement tu encodes le #, mais aussi le point d'interrogation et le signe égal. Il va alors chercher une page "calc_mv.php%3Fretour%3Dthermo04.php%23calculer" que, bien sûr, il ne trouvera pas.
Quelle pourrait-être la bonne méthode ?
Voir plus haut.
-- Olivier Miakinen À Bruxelles, vous avez vu le Miakinen Pis ?
--
echo "<a
href="calc_temp.php?retour=thermo04.php".urlencode("#calculer")."">Calculer
les températures à partir d'une tension</a>n";
Là aussi, à priori, ça fonctionne correctement, mais est-ce la bonne
méthode ?
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre
calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode.
De même si le contenu de $calculer ne comporte que des lettres ou des
chiffres.
Bon, je vais supposer que tu voulais "$calculer" et qu'il peut y avoir
des minuscules accentuées par exemple. Voici un code équivalent au tien,
quoique je l'aie réécrit d'une façon que je trouve plus lisible.
echo "<a href='calc_temp.php?retour=thermo04.php"
. urlencode("#$calculer")
. "'>Calculer les températures à partir d'une tension</a>n";
Pour ne pas encoder le '#', il vaudrait mieux ceci :
echo "<a href='calc_temp.php?retour=thermo04.php#"
. urlencode("$calculer")
. "'>Calculer les températures à partir d'une tension</a>n";
Voire :
echo "<a href='calc_temp.php?retour=thermo04.php#"
. urlencode($calculer)
. "'>Calculer les températures à partir d'une tension</a>n";
J'ai bien essayé d'encoder l'url complète :
echo "<a
href="".urlencode("calc_mv.php?retour=thermo04.php#calculer")."">Calculer
les tensions à partir d'une température</a></p>n";
Alors là, c'est pire. Non seulement tu encodes le #, mais aussi le point
d'interrogation et le signe égal. Il va alors chercher une page
"calc_mv.php%3Fretour%3Dthermo04.php%23calculer" que, bien sûr, il ne
trouvera pas.
Quelle pourrait-être la bonne méthode ?
Voir plus haut.
--
Olivier Miakinen
À Bruxelles, vous avez vu le Miakinen Pis ?
echo "<a href="calc_temp.php?retour=thermo04.php".urlencode("#calculer")."">Calculer les températures à partir d'une tension</a>n";
Là aussi, à priori, ça fonctionne correctement, mais est-ce la bonne méthode ?
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode. De même si le contenu de $calculer ne comporte que des lettres ou des chiffres.
Bon, je vais supposer que tu voulais "$calculer" et qu'il peut y avoir des minuscules accentuées par exemple. Voici un code équivalent au tien, quoique je l'aie réécrit d'une façon que je trouve plus lisible.
echo "<a href='calc_temp.php?retour=thermo04.php" . urlencode("#$calculer") . "'>Calculer les températures à partir d'une tension</a>n";
Pour ne pas encoder le '#', il vaudrait mieux ceci :
echo "<a href='calc_temp.php?retour=thermo04.php#" . urlencode("$calculer") . "'>Calculer les températures à partir d'une tension</a>n";
Voire :
echo "<a href='calc_temp.php?retour=thermo04.php#" . urlencode($calculer) . "'>Calculer les températures à partir d'une tension</a>n";
J'ai bien essayé d'encoder l'url complète :
echo "<a href="".urlencode("calc_mv.php?retour=thermo04.php#calculer")."">Calculer les tensions à partir d'une température</a></p>n";
Alors là, c'est pire. Non seulement tu encodes le #, mais aussi le point d'interrogation et le signe égal. Il va alors chercher une page "calc_mv.php%3Fretour%3Dthermo04.php%23calculer" que, bien sûr, il ne trouvera pas.
Quelle pourrait-être la bonne méthode ?
Voir plus haut.
-- Olivier Miakinen À Bruxelles, vous avez vu le Miakinen Pis ?
--
Dominique Ottello
Olivier Miakinen <om+ écrivait :
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode. De même si le contenu de $calculer ne comporte que des lettres ou des chiffres.
Dans ce cas précis, mon ancre n'est pas une variable mais bien du texte pur : echo "<a name="calculer">n";
Je viens de faire l'essai, sans utiliser urlencode() comme précisé dans ta réponse ci-dessus :
echo "<a href="calc_mv.php?retour=thermo04.php#calculer">Calculer les tensions à partir d'une température</a>n";
et ça fonctionne correctement.
Mes moments de "galère" devaient provenir d'une autre erreur qui a été incidemment corrigée.
Merci pour toutes ces explications. -- = Dominique Ottello = http://www.ottello.net Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation : il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau, même si c'est pire qu'avant et cela de toute évidence. Montherlant
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre
calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode.
De même si le contenu de $calculer ne comporte que des lettres ou des
chiffres.
Dans ce cas précis, mon ancre n'est pas une variable mais bien du texte
pur : echo "<a name="calculer">n";
Je viens de faire l'essai, sans utiliser urlencode() comme précisé dans
ta réponse ci-dessus :
echo "<a href="calc_mv.php?retour=thermo04.php#calculer">Calculer les
tensions à partir d'une température</a>n";
et ça fonctionne correctement.
Mes moments de "galère" devaient provenir d'une autre erreur qui a été
incidemment corrigée.
Merci pour toutes ces explications.
--
= Dominique Ottello = http://www.ottello.net
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Tout d'abord, si c'est vraiment "#calculer" ton ancre, et pas une ancre calculée du style de "#$calculer", alors tu n'as pas besoin d'urlencode. De même si le contenu de $calculer ne comporte que des lettres ou des chiffres.
Dans ce cas précis, mon ancre n'est pas une variable mais bien du texte pur : echo "<a name="calculer">n";
Je viens de faire l'essai, sans utiliser urlencode() comme précisé dans ta réponse ci-dessus :
echo "<a href="calc_mv.php?retour=thermo04.php#calculer">Calculer les tensions à partir d'une température</a>n";
et ça fonctionne correctement.
Mes moments de "galère" devaient provenir d'une autre erreur qui a été incidemment corrigée.
Merci pour toutes ces explications. -- = Dominique Ottello = http://www.ottello.net Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation : il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau, même si c'est pire qu'avant et cela de toute évidence. Montherlant