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:
  1. 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:
  1. <?php  
  2. function randString() {  
  3.   $out = '';  
  4.   for ($i = rand(4, 20); $i > 0; $i--) {  
  5.     $out .= chr(rand(32, 120));  
  6.   }  
  7.   return $out;  
  8. }  
  9. function genItem() {  
  10.   return array('cim' => randString());  
  11. }  
  12. $rows = array_map('genItem'array_fill(0, 5, null));  
  13. foreach ($rows as $row) {  
  14.   echo "<a href='index.php?p=ppk.php&amp;pp=" , $row['cim'] , "'>" , $row['cim'] , "</a>\n";  
  15. }  
Kimenet:
  1. <a href='index.php?p=ppk.php&amp;pp=_Ljc\CM'>_Ljc\CM</a>  
  2. <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>  
  3. <a href='index.php?p=ppk.php&amp;pp=dYAEO%'>dYAEO%</a>  
  4. <a href='index.php?p=ppk.php&amp;pp=m4U`41`)a8DU(h+8OZ'>m4U`41`)a8DU(h+8OZ</a>  
  5. <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:
  1. 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:
  1. <a href='index.php?p=ppk.php&amp;pp=G%2Ar%5BmH%5E%60uuxVflZ%3Cwl%22%3A'>G*r[mH^`uuxVflZ&lt;wl":</a>  
  2. <a href='index.php?p=ppk.php&amp;pp=0tO9QdJ%281%3C%29Vhu'>0tO9QdJ(1&lt;)Vhu</a>  
  3. <a href='index.php?p=ppk.php&amp;pp=uXOg_AA%3Bw7%3DA%3ExbIohI'>uXOg_AA;w7=A&gt;xbIohI</a>  
  4. <a href='index.php?p=ppk.php&amp;pp=5Ei%29H%23%5D%29.CAxE'>5Ei)H#]).CAxE</a>  
  5. <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:
  1. 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".