ugrás a tartalomhoz

Egyedi azonosító - hogyan?

gabeekex · 2009. Aug. 11. (K), 10.24
Sziasztok. Nemrég írtam ide, de egy újabb problémába botlottam, remélem ebben is tudtok segíteni.

Amiről szó van, az lényegében egy youtube videó gyűjtő script. Három php fájlból áll a történet. Az első segítségével felviszek egy youtube azonosítót egy adatbázisba (pl.: http://www.youtube.com/watch?v=tFPh6XH0EEw - a vastaggal jelölt részt) és a továbbiakban ezzel operálok. A második fájl (listazo.php) kilistázza az azonosító alapján a videóhoz tartozó kis képeket és ezekre tesz egy linket amely tovább mutat a harmadik fájlra (video.php). A harmadik fájl célja az lenne, hogy azt a videót játsza le, amire rákattintottam és itt ütötte fel a fejét a probléma. Mivel az adatbázisból olvas ez a fájl is, az azonosítók alapján ugyanúgy az összes videót kirakja mint a listázó, pedig itt csak azt kellene kiraknia amelyikre a listázóban rákattoltam.

Hogyan lehetne ezt megoldani? Esetleg egy plusz változóval mindegyik videónak egyedi azonosítót adjak? Bízom a segítségetekben. Előre is köszönöm.

listazo.php (adatbázishoz való csatlakozás utáni kód)

$lekeres = mysql_query( "SELECT * FROM videok");
while ($egysor = mysql_fetch_array( $lekeres ))
{
$tube=$egysor["tube"];
print ("<a href=video.php><img src=http://i1.ytimg.com/vi/".$tube."/default.jpg>");
}
mysql_close( $kapcsolat );
?>


video.php (adatbázishoz való csatlakozás utáni kód)


$lekeres = mysql_query( "SELECT * FROM videok");
while ($egysor = mysql_fetch_array( $lekeres ))

{


$tube=$egysor["tube"];




print ("

<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".$tube."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".$tube."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>



");

}
mysql_close( $kapcsolat );

?>
 
1

Felejtsd el while függvényt,

Tanul0 · 2009. Aug. 11. (K), 11.16
Felejtsd el while függvényt a video.phpban, készíts inkább egy


function tube($id) {
	$lek=mysql_fetch_array(mysql_query("SELECT * FROM videok WHERE id='$id'"));
	return $lek['tube'];
}
akkor a video.php-be
amit úgy linkelsz be, hogy video.php?id=$id
és a listaz.php-ban lekérdezed még az idket is

$id=$_GET['id'];
print ("<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>");
2

Ez nagyon jó megoldás!

gabeekex · 2009. Aug. 11. (K), 11.43
Ez nagyon jó megoldás!

Köszönöm szépen a segítséget :)
3

Biztonság

Sasha · 2009. Aug. 11. (K), 12.52
Én még kibőviteném egy kicsit a dolgot.

function tube($id) {  
    $lek=mysql_fetch_array(mysql_query("SELECT * FROM videok WHERE id='$id'"));  
    return $lek['tube'];  
}


if(isset($_GET['id']) && mysql_num_rows(mysql_query("SELECT * FROM videok WHERE id='".mysql_real_escape_string($_GET['id'])."'")) == 1)
{

 $id=mysql_real_escape_string($_GET['id']);  
print ("<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>");

}else{

print "Csá csumi küldjél érvényes azonosítót";

}