Linkben lévő invalid & kódolása
Üdv!
Nos elvileg ha egy linkben benne van az "&" jel akkor az nem valid, ez igaz?
Most megírtam ezt a függvényt ez akkor jó lesz?
És minden ilyen linket ilyennel kell kiiratnom?
Még egy hírben is ahol nem keresi meg autómatán a linkeket hanem a szerkesztő html tagokkal írja be a linket...?
■ Nos elvileg ha egy linkben benne van az "&" jel akkor az nem valid, ez igaz?
Most megírtam ezt a függvényt ez akkor jó lesz?
És minden ilyen linket ilyennel kell kiiratnom?
Még egy hírben is ahol nem keresi meg autómatán a linkeket hanem a szerkesztő html tagokkal írja be a linket...?
<?php
function url_encode($url) {
$url = htmlentities($url);
return $url;
}
print '<a href="'.url_encode('http://www.domain.hu/index23.php?=get_1=4525&get2=535').'">link</a>';
?>
Felesleges
Ha csak az ampersand (&) jelet akarod validdá tenni, akkor felesleges az url_encode használata.
Sokkal egyszerűbb, ha a linkbe & helyett & -et teszel. Minden böngésző ismeri, és valid is lesz.
csak & jelet kell levédeni?
Akkor csak az "&" jelet kell levédeni...:)
Ezt jó tudni.
Kössz.
Érdekes elképzelés
htmlentities
. Másrészt a PHP-nem van egyurlencode
nevű függvény, hülyeség pont ugyanolyan névvel definiálni egy másikat. Harmadrészt nem csak az&
karaktert, de az idézőjelet sem árt escape-elni. Végül még annyit jegyeznék meg, hogy nem azért nem szabad&
-et használni azon a helyen, mert az URL-eknél ezt így kell csinálni, hanem mert a HTML leírónyelv sajátossága, hogy az idézőjelek közti tulajdonság értékeketmindenhol
escape
-elni kell. Ha inline stílusdefiníciót írsz, ha inline JavaScriptet, ha egyalt
tulajdonság értékeként&
vagy idézőjelet jelet szeretnél beírni, stb.András, igazad van...
azért írtam egy függvényt mert ha mondjuk most minden linkhez ezt beteszem és később mint most is elég csak mondjuk az "&" jelet és a '"' jelet escapelni akkor egyhelyen kell csak modosítanom...
Különben meg mindegy, mert akkor max nem használok függvényt rá (sajátot), de azért kössz a tanácsot.
És az urlencode() függvény a "&" jelből nem "&"-et csinál, hanem az "%" jelesre alakítja az ilyen dolgokat meg a "/" jeleket is. Ez nem baj? + nem értem hogy az alap urlben "&" jel van ami nem jó de az átalakított ban is van: "&" akkor ez most hogy is van? vagy az a lényeg hogy az "&" jel után ott legyen az amp; szting?
html
header()
a böngészőben (forrásban) van egy url cím, amiben mondjuk van van az "&" jel és ha erre kattintunk akkor a böngésző ezt autómatán "&" jelre írja át a böngésző sávban, ez gondolom így van ugye?
Na de mi van akkor ha mondjuk php-ban egy header("Location: index.php?q=index&id=10") függvényt meghívok akkor a böngésző az "&"-t kapja meg nem? és nem tudja ezt "&" jelre átalakítani tehát hibás lesz az átirányítás? vagy én ezt rosszul látom?
Tehát a kérdésem akkor a következő, hogy a header() függvényben a Location: paraméternél "&" jelet vagy "&" jelet kell használni?
fejléc vs tartalom
remélem érthető. :]
akkor jól gondoltam
kössz