ugrás a tartalomhoz

Linkben lévő invalid & kódolása

Vas Dávid · 2007. Már. 29. (Cs), 15.40
Ü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...?

<?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>';

?>
 
1

Felesleges

szotsaki · 2007. Már. 29. (Cs), 16.36
Szia!

Ha csak az ampersand (&) jelet akarod validdá tenni, akkor felesleges az url_encode használata.

Sokkal egyszerűbb, ha a linkbe & helyett &amp; -et teszel. Minden böngésző ismeri, és valid is lesz.
2

csak & jelet kell levédeni?

Vas Dávid · 2007. Már. 29. (Cs), 18.11
Értem...:)
Akkor csak az "&" jelet kell levédeni...:)
Ezt jó tudni.
Kössz.
3

Érdekes elképzelés

Bártházi András · 2007. Már. 29. (Cs), 20.02
Egyrészt nem értem, hogy miért vezettél be egy új függvényt ugyanazzal a működéssel, mint a htmlentities. Másrészt a PHP-nem van egy urlencode 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ékeket mindenhol escape-elni kell. Ha inline stílusdefiníciót írsz, ha inline JavaScriptet, ha egy alt tulajdonság értékeként & vagy idézőjelet jelet szeretnél beírni, stb.
4

András, igazad van...

Vas Dávid · 2007. Már. 29. (Cs), 20.12
DE:
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 "&amp;"-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: "&amp;" akkor ez most hogy is van? vagy az a lényeg hogy az "&" jel után ott legyen az amp; szting?
5

html

Őry Máté · 2007. Már. 30. (P), 19.44
a paraméterek értelmezésénél az & jel után entitást keres. neked nem az urlencode, hanem a htmlentities kell szerintem. András az urlencodeot arra hozta példaként, hogy nagyon hasonlít a te függvényed nevéhez.
6

header()

Vas Dávid · 2007. Ápr. 5. (Cs), 00.45
ha jól értelmezem, akkor a következő a szitu:
a böngészőben (forrásban) van egy url cím, amiben mondjuk van van az "&amp;" 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&amp;id=10") függvényt meghívok akkor a böngésző az "&amp;"-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 "&amp;" jelet kell használni?
7

fejléc vs tartalom

gex · 2007. Ápr. 5. (Cs), 09.42
a location: index.php?a=1&b=2 egy fejléc, amiben nem kell az & jelből &amp;-ot csinálni, &amp;-ra csak a tartalomban (az a tag href attribútuma is ide tartozik) lévő & jeleket kell átírni.
remélem érthető. :]
8

akkor jól gondoltam

Vas Dávid · 2007. Ápr. 5. (Cs), 12.17
igen, akkor jól gondoltam...
kössz