Autor Zpráva
leo.c
Profil *
Ahoj. Marně se snažím sestavit url tak, aby prošly i znaky jako: "&amp;nazev2&amp;><" -název proměnné , "hodnota2"-hodnota proměnné. Zkoušel jsem urlencode a pak jednodušší http_build_query, ale to přeloží &amp; jako &&amp; a výsledkem je interpretace jako &. Jakým způsobem mohu přenášet v url všechny speciální znaky tak, aby se to nezkomolilo?
Alphard_
Profil *
leo.c:
Jestli ten odkaz generujete do html tagu <a href=""> a nechcete interpretovat entity, ošetřete ho htmlspecialchars().

[#4] vlastně ano. Po urlencode() už není co ošetřovat. Ale škodu to neudělá, nechal jsem se trapně zmást tím "ale to přeloží &amp; jako &&amp".
leo.c
Profil *
To také nefunguje. Tady to dokonce rozdělí původní nazev na několik položek. Pak jsem vyzkoušel kombinaci urlencode(htmlspecialchars a ta se zdá se funguje. Je jisté že tento postup bude fungovat a budou tyto adresy správně interpretovány i ve všech prohlížečích nebo je to spíš náhoda že zrovna tohle funguje?
DoubleThink
Profil *
leo.c:
Zkoušel jsem urlencode a pak jednodušší http_build_query, ale to přeloží &amp; jako &&amp;
urlencode přeloží &amp; jako %26amp%3B - kde vidíš problém?
htmlspecialchars se na escapování URL nepoužívá. Logicky - není k tomu určen.
leo.c
Profil *
DoubleThink:
urlencode přeloží &amp; jako %26amp%3B - kde vidíš problém?
Protože PHP to pak ve výsledku automaticky přeloží jako &
leo.c
Profil *
Našel jsem ještě tento příspěvek: http://www.php.net/manual/en/function.urlencode.php#56426 . Pomocí toho to také nefunguje.
Odkaz:
<a href="./?nazev1=hodnota1%26amp%3B&amp;%26amp%3Bnazev2%26amp%3B%3E%3C=hodnota2%26&amp;__token=887c8eab60b3e42cca73973021319fa7156cb1996240ad882a38adf0a1997234">ODKAZ</a>

Odeslané:
Array
(
    [nazev1] =&gt; hodnota1&amp;
    [&amp;nazev2&amp;&gt;&lt;] =&gt; hodnota2&amp;
    [__token] =&gt; 091118012c28810e644cb4d38ff30c618f95f0a8077e5f28c8b639dcc1a1f943
)
leo.c
Profil *
A nebo možná funguje, zjistil jsem že některé znaky nejenom že si automaticky překládá php, ale i prohlížeč při prohlížení zdrojového kódu, ale jen někdy(při zobrazení částečého) - v tom je ale bordel.
DoubleThink
Profil *
leo.c:
Protože PHP to pak ve výsledku automaticky přeloží jako &
Nesmysl - PHP entity nepřekládá. V proměnné bude stále &amp;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: