ugrás a tartalomhoz

Szintaktika?

S3RI0US · 2011. Jan. 18. (K), 18.26
Helló,
Van egy kódom, amely adatbázis-adatok alapján küld tovább egy másik oldalra front controllerral. Namost az a gond, hogy a front controllerba tobb kritériumot kell bepréselni. A kódban próbáltam & jellel és & -al is. A link:
http://torippk.tk/index.php?p=full.php=cim
pedig az kéne legyen, hogy
http://torippk.tk/index.php?p=full.php&pp=cim

A kódrész ami ezért felelős:

echo "<a href='index.php?p=ppk.php&amp;pp=" , $row['cim'] , "'>" , $row['cim'] , "</a>";

Kösz szépen mindenféle segítségért!
 
1

Írtam egy nagyszerű kis

Poetro · 2011. Jan. 18. (K), 18.58
Írtam egy nagyszerű kis programot, ami generál egy halom elemet. Ebből talán látszik, hogy mi lehet a hiba:
<?php
function randString() {
  $out = '';
  for ($i = rand(4, 20); $i > 0; $i--) {
    $out .= chr(rand(32, 120));
  }
  return $out;
}
function genItem() {
  return array('cim' => randString());
}
$rows = array_map('genItem', array_fill(0, 5, null));
foreach ($rows as $row) {
  echo "<a href='index.php?p=ppk.php&amp;pp=" , $row['cim'] , "'>" , $row['cim'] , "</a>\n";
}
Kimenet:
<a href='index.php?p=ppk.php&amp;pp=_Ljc\CM'>_Ljc\CM</a>
<a href='index.php?p=ppk.php&amp;pp=hh"r=U?5u(u q,hfq'B`'>hh"r=U?5u(u q,hfq'B`</a>
<a href='index.php?p=ppk.php&amp;pp=dYAEO%'>dYAEO%</a>
<a href='index.php?p=ppk.php&amp;pp=m4U`41`)a8DU(h+8OZ'>m4U`41`)a8DU(h+8OZ</a>
<a href='index.php?p=ppk.php&amp;pp=bd-"(!+Xqxt.;rFQlN'>bd-"(!+Xqxt.;rFQlN</a>
A javított változat csak egyetlen sorban különbözik:
  echo "<a href='index.php?p=ppk.php&amp;pp=" , rawurlencode($row['cim']) , "'>" , htmlentities($row['cim'], ENT_NOQUOTES) , "</a>\n";
Ekkor a kimenet már:
<a href='index.php?p=ppk.php&amp;pp=G%2Ar%5BmH%5E%60uuxVflZ%3Cwl%22%3A'>G*r[mH^`uuxVflZ&lt;wl":</a>
<a href='index.php?p=ppk.php&amp;pp=0tO9QdJ%281%3C%29Vhu'>0tO9QdJ(1&lt;)Vhu</a>
<a href='index.php?p=ppk.php&amp;pp=uXOg_AA%3Bw7%3DA%3ExbIohI'>uXOg_AA;w7=A&gt;xbIohI</a>
<a href='index.php?p=ppk.php&amp;pp=5Ei%29H%23%5D%29.CAxE'>5Ei)H#]).CAxE</a>
<a href='index.php?p=ppk.php&amp;pp=adk%5C%2BnOPB%3A%26%21kLP'>adk\+nOPB:&amp;!kLP</a>
Remélem látszik a különbség.
4

Kösz szépen, gyönyörüen müxik

S3RI0US · 2011. Jan. 19. (Sze), 17.11
Kösz szépen, gyönyörüen müxik igy az echo.
2

Ne vesszőt tegyél

rajk · 2011. Jan. 18. (K), 23.53
Helyesen:
echo "<a href='index.php?p=ppk.php&pp=" . $row['cim'] . "'>" . $row['cim'] . "</a>";
A , helyet . legyen használva, ezzel fűzöl össze string részleteket.
3

Ha megfigyeled, nem

bugadani · 2011. Jan. 19. (Sze), 00.13
Ha megfigyeled, nem összefűzni, hanem kiírni szeretné.
Az echo elfogadja a vesszővel elválasztott sztringet és kiírja sorrendben pont úgy, mintha ponttal lenne összefűzve, csak épp megvan az a hatalmas előnye, hogy kiírás előtt nem akarja a memóriában összeerőltetni azokat egy memóriaterületre, megspórolva ezzel egy hatalmas adag műveletet.
5

Azt esetleg meg tudnád

tomiie · 2011. Jan. 20. (Cs), 20.12
Azt esetleg meg tudnád mondani, hogy ez jelenthet-e lényeges sebességnövelést valamilyen helyzetben?
6

Nagyon röviden: jelent

bugadani · 2011. Jan. 20. (Cs), 20.51
Nagyon röviden: jelent sebességnövekedést, viszont az más kérdés, hogy ez mennyire jelentős. Függ az összefűzendő/kiírandó sztringek hosszától, darabszámától, meg még ki tudja mitől.
Annyi kétségtelen, hogy csökkenti az elvégzendő műveletek számát ha nem összefűzöl, hanem vesszővel megszakítva íratod ki a sztringeket, és én azon az elven vagyok, hogy nem kell fölöslegesen terhelni a vasat, amikor ugyan azt az eredményt el lehet érni "olcsóbban".