Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

generer une url

25 réponses
Avatar
alainL
Bonjour,
Je voudrais compléter une url avec la variable récupérée par un form et
en faire un lien vers un autre site.
Mais je tourne en rond avec la syntaxe.
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';

Si le form envoie $anmois = usage_200810.html, le code ci-dessous semble
renvoyer une url tronquée: messtats/usage_200810.html
Il me faudrait obtenir un lien vers :
" http://lesite/messtats/usage_200810.html "

Merci pour votre aide.

--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal

10 réponses

1 2 3
Avatar
Mihamina Rakotomandimby
alainL wrote:
Mais je tourne en rond avec la syntaxe.
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';



En quel "langage?
Avatar
alainL
Mihamina Rakotomandimby a écrit :
alainL wrote:
Mais je tourne en rond avec la syntaxe.
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';



En quel "langage?



PHP ....

--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
Avatar
Olivier Miakinen
Le 06/10/2008 11:18, alainL a écrit :

Je voudrais compléter une url avec la variable récupérée par un form et
en faire un lien vers un autre site.
Mais je tourne en rond avec la syntaxe.
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';



Ça me semble correct, même si pour ma part je n'utilise jamais la
syntaxe propre à echo, avec virgules, et que je lui préfère la
contaténation avec points.

Si le form envoie $anmois = usage_200810.html, le code ci-dessous
semble renvoyer une url tronquée: messtats/usage_200810.html


^^^^^^ ;-)

Pour transformer cette impression en certitude, regarde donc le code
source HTML qui est généré par PHP, au lieu de te fier à la barre d'état
du navigateur quand tu survoles le lien.

Si tu utilises Mozilla ou Seamonkey sur Windows, le raccourci est Ctrl-U.
Avatar
Mihamina Rakotomandimby
alainL wrote:
Mais je tourne en rond avec la syntaxe.
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';


En quel "langage?


PHP ....



Quoi, "...."?
Moi j'aurais fait
print ('<a href="//lesite.fr/messtats/'.urlencode($anmois).'">');
Avatar
Olivier Miakinen
Le 06/10/2008 14:53, je répondais à alainL :

echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';



Ça me semble correct, même si pour ma part je n'utilise jamais la
syntaxe propre à echo, avec virgules, et que je lui préfère la
contaténation avec points.



En général, je préfère même séparer le calcul de l'affichage, avec comme
bénéfice supplémentaire qu'il n'y a plus besoin de concaténation et que
l'ensemble en devient beaucoup plus lisible à mon goût.

$url = urlencode($anmois);
echo "<a href='//lesite.fr/messtats/$url'>";

Mais nous sommes hors charte ici, le forum fr.comp.lang.php étant plus
approprié à ce genre de discussion.
Avatar
CrazyCat
alainL wrote:
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';
Si le form envoie $anmois = usage_200810.html, le code ci-dessous semble
renvoyer une url tronquée: messtats/usage_200810.html
Il me faudrait obtenir un lien vers :
" http://lesite/messtats/usage_200810.html "



Pour avoir le http, il soit le mettre dans le href:
echo '<a href="http://lesite.fr/messtats/', urlencode($anmois), '">';

Soit mettre un lien absolu par rapport à la racine du site:
echo '<a href="/messtats/', urlencode($anmois), '">';

Soit mettre un lien relatif par rapport à la page:
echo '<a href="./messtats/', urlencode($anmois), '">';

mais "//" n'est pas valide.

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Avatar
alainL
Olivier Miakinen a écrit :
Le 06/10/2008 14:53, je répondais à alainL :
echo '<a href="//lesite.fr/messtats/', urlencode($anmois), '">';


Ça me semble correct, même si pour ma part je n'utilise jamais la
syntaxe propre à echo, avec virgules, et que je lui préfère la
contaténation avec points.





Le code généré est bon.
En général, je préfère même séparer le calcul de l'affichage, avec comme
bénéfice supplémentaire qu'il n'y a plus besoin de concaténation et que
l'ensemble en devient beaucoup plus lisible à mon goût.

$url = urlencode($anmois);
echo "<a href='//lesite.fr/messtats/$url'>";



J'avais essayé un truc comme ça, effectivement plus lisible mais malgré
cela, j'avais dû avaler une virgule !!
Je me demande si pour les essais suivants Ffx ne me renvoyait pas une
page conservée en cache..

Mais nous sommes hors charte ici, le forum fr.comp.lang.php étant plus
approprié à ce genre de discussion.


Euh, oui, mais les modérateurs de fr. php sont très stricts :_(((( et
on obtient plus facilement une "querelle d'experts" qu'un tuyau pour
bidouilleur francophone !

--
Alain
Avatar
Olivier Miakinen
Le 06/10/2008 15:02, CrazyCat a écrit :

Pour avoir le http, il soit le mettre dans le href:
echo '<a href="http://lesite.fr/messtats/', urlencode($anmois), '">';

Soit mettre un lien absolu par rapport à la racine du site:
echo '<a href="/messtats/', urlencode($anmois), '">';

Soit mettre un lien relatif par rapport à la page:
echo '<a href="./messtats/', urlencode($anmois), '">';

mais "//" n'est pas valide.



Tu es sûr de toi ?

Le RFC 2396 l'autorise explicitement :

URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
absoluteURI = scheme ":" ( hier_part | opaque_part )
relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ]
[...]
net_path = "//" authority [ abs_path ]
abs_path = "/" path_segments
rel_path = rel_segment [ abs_path ]

Et dans la spécification HTML 4.01 je n'ai rien vu qui l'interdise.
Avatar
Olivier Miakinen
Le 06/10/2008 15:31, alainL a écrit :

Le code généré est bon.



D'accord. Donc c'est bien en charte ici (ou peut-être dans le forum
voisin f.c.i.w.navigateurs) plutôt que dans f.c.l.php.

Quel est le comportement exactement ? Tu restes sur le même site au lieu
d'aller sur un autre site, comme le suggère CrazyCat ? On peut avoir un
exemple en ligne ?
Avatar
alainL
Olivier Miakinen a écrit :
Le 06/10/2008 15:31, alainL a écrit :
Le code généré est bon.



D'accord. Donc c'est bien en charte ici (ou peut-être dans le forum
voisin f.c.i.w.navigateurs) plutôt que dans f.c.l.php.

Quel est le comportement exactement ? Tu restes sur le même site au lieu
d'aller sur un autre site, comme le suggère CrazyCat ? On peut avoir un
exemple en ligne ?


Il y a un fichier de stats dans mon espace perso. Pour je ne sais quelle
raison, les stats affichées restent au 18 septembre, mais le fichier de
septembre est lui, complet. J'ai donc essayé un petit prog qui va
chercher ce fichier . Il se lance à partir de la barre perso de Ffx.
<? if(@$_POST["periode"] != "")
{
$anmois = "usage_".$_POST["periode"].".html";
echo '<a href="http://mon_espace.fr/mes_stats/', urlencode($anmois), '">';
echo "Connexion";
}
?>
Le lien généré est bon :
http://mon_espace.fr/mes_stats/usage_200810.html (avec // donc )
Le prg fonctionne en local (seulement si easyphp actif) et depuis le
site distant.

--
Alain
1 2 3