Embed video Youtube in php/mysql

Zhu

Nuovo Utente
28 Ott 2009
3
0
0
Embed video Youtube in php/mysql [RISOLTO]

Ciao.
Premetto che sono abbastanza imbranato e ho bisogno di suggerimenti precisi :dormo:
Sto creando il backoffice di un sito e sto scrivendo il codice in php per la pubblicazione di news da parte degli admin utilizzando un database mysql.
Il mio problema è il seguente: vorrei aggiungere dei video presi da youtube nelle varie news. Per far ciò, ho creato una maschera di inserimento dei tag video (che collega il tutto alla news relativa) con il seguente codice:
<form method="post" action="addextranewsvideo.php">
<input type="hidden" name="ID_news" value="<? print"$ID"; ?>" />
titolo: <input type="text" name="videotitolo" value="<?php print"$videotitolo"; ?>" /><br />
url: <input type="text" name="videourl" value="<?php print"$videourl"; ?>" /><br />
didascalia: <input type="text" name="videodidascalia" value="<?php print"$videodidascalia"; ?>" class="campomediogrande" />
<br /><br />

<?php
if ($InserisciVideo == 'Inserisci')
{
$videodidascalia = addslashes ("$videodidascalia");
$queryinsvideo = "insert into live2_news_video(ID_news,nome,indirizzo,didascalia) values('".$ID_news."','".$videotitolo."','".$videourl."','".$videodidascalia."')";
$Result = mysql_query($queryinsvideo) or die ("Errore nella query:".mysql_error());
print "<script language=\"JavaScript\">
<!--
document.location.href = \"vistanews.php?ID=$ID_news\"
//-->
</script>";
}
?>
<input type="submit" name="InserisciVideo" value="Inserisci" />
<input type="reset" value="Cancella" class="submit" />
</form>
(L'insert del valore $videourl appare staccato...non capisco perchè, ma nel codice è scritto bene)

Con questa maschera, vado ad incollare l'indirizzo del video che voglio visualizzare nelle news nel campo "videourl" e lo script inserisce nel database la url (oltre al titolo e alla didascalia) e fin qua tutto ok.

Quando però vado a richiamare il video nella pagina di visualizzazione della news (con una query mysql), il risultato che ottengo è un quadrato bianco. Questo il codice che ho usato:
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td class="tdcentratotitolo">video</td>
<td class="tdcentratotitolo">nome video</td>
<td class="tdcentratotitolo">didascalia</td>
<td class="tdcentratotitolo">elimina</td>
</tr>
<?php
//*****************************ELIMINAZIONE VIDEO
if ($EliminaVideo == 'Elimina') {
$querycancvideo = "delete from live2_news_video where live2_news_video.ID='$ID_video_eliminato'";
$Resultcanc = mysql_query($querycancvideo) or die ("Errore nella query:".mysql_error());
print "<h3>video eliminato con successo</h3><br />";
}
//*****************************VISTA VIDEO
$queryvideo = mysql_query ("select * from live2_news_video where live2_news_video.ID_news = $ID");
while ($arrayvideo = mysql_fetch_array ($queryvideo))
{
$arrayvideo[didascalia] = stripslashes ("$arrayvideo[didascalia]");
$linkvideo = '$arrayvideo[indirizzo]';
print "
<tr>
<td>
<object width=\"220\" height=\"165\"><param name=\"movie\" value=\"$linkvideo\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"$linkvideo\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"220\" height=\"165\"></embed></object>
</td>
<td>$arrayvideo[nome]</td>
<td>$arrayvideo[didascalia]</td>
<td>
<form enctype=\"text\" method=\"post\" action=\"addextranewsvideo.php\">
<input type=\"hidden\" name=\"ID_video_eliminato\" value=\"$arrayvideo[ID]\" />
<input type=\"hidden\" name=\"video_da_eliminare\" value=\"$arrayvideo[nome]\" />
<input type=\"submit\" name=\"EliminaVideo\" value=\"Elimina\" /></form>
</td>
</tr>
";
}
?>
</table>
Il risultato è una tabella in cui nel primo td c'è il rettangolino vuoto del video e nei successivi, le informazioni del record relativo del database.

Dove sto sbagliando? Ho semplicemente passato la variabile dell'indirizzo all'oggetto, come mai non funziona? Se sposto l'embed al di fuori del php (togliendo i backslashes e inserendo l'indirizzo al posto della variabile) funziona, ma a me serve un embed dinamico.

Ho cercato a giro in rete e ho trovato tutorial interminabili su player API e custom player, ma a me non serve che il video abbia comandi e menu e neppure che sia relativo ad un canale...

Qualcuno sa aiutarmi? Magari l'errore è banale, ma non so più dove sbattere la testa... Grazie in anticipo
 
Ultima modifica:
ciao
innanzi tutto correggi alcuni errori, ti do un esempio e tu ti riguardi tutto il codice

$arrayvideo[didascalia] = stripslashes ("$arrayvideo[didascalia]");
$linkvideo = '$arrayvideo[indirizzo]';

le righe sopra vanno scritte

$arrayvideo['didascalia'] = stripslashes ($arrayvideo['didascalia']);
$linkvideo = $arrayvideo['indirizzo'];


poi, tolti gli errori, per prima cosa verifichiamo cosa risulta e quindi cosa stampi inserendo tra le righe sotto un var dump


$linkvideo = $arrayvideo['indirizzo'];

var_dump($linkvideo);
print "..eccetera...

così vedi se la variabile contiene o no l'indirizzo giusto
 
ehm...per natale ti posso inviare un cesto di frutta? :D
ora funziona!!!
GRAZIE MILLE!!!!!:beer:
 
Ciao,
visto che hai risolto .... puoi condividere tutti gli script?

Praticamente ci sono già, basta mettere gli apici dove necessario:

<form method="post" action="addextranewsvideo.php">
<input type="hidden" name="ID_news" value="<? print"$ID"; ?>" />
titolo: <input type="text" name="videotitolo" value="<?php print"$videotitolo"; ?>" /><br />
url: <input type="text" name="videourl" value="<?php print"$videourl"; ?>" /><br />
didascalia: <input type="text" name="videodidascalia" value="<?php print"$videodidascalia"; ?>" class="campomediogrande" />
<br /><br />

<?php
if ($InserisciVideo == 'Inserisci')
{
$videodidascalia = addslashes ("$videodidascalia");
$queryinsvideo = "insert into live2_news_video(ID_news,nome,indirizzo,didascalia ) values('".$ID_news."','".$videotitolo."','".$video url."','".$videodidascalia."')";
$Result = mysql_query($queryinsvideo) or die ("Errore nella query:".mysql_error());
print "<script language=\"JavaScript\">
<!--
document.location.href = \"vistanews.php?ID=$ID_news\"
//-->
</script>";
}
?>
<input type="submit" name="InserisciVideo" value="Inserisci" />
<input type="reset" value="Cancella" class="submit" />
</form>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td class="tdcentratotitolo">video</td>
<td class="tdcentratotitolo">nome video</td>
<td class="tdcentratotitolo">didascalia</td>
<td class="tdcentratotitolo">elimina</td>
</tr>
<?php
//*****************************ELIMINAZIONE VIDEO
if ($EliminaVideo == 'Elimina') {
$querycancvideo = "delete from live2_news_video where live2_news_video.ID='$ID_video_eliminato'";
$Resultcanc = mysql_query($querycancvideo) or die ("Errore nella query:".mysql_error());
print "<h3>video eliminato con successo</h3><br />";
}
//*****************************VISTA VIDEO
$queryvideo = mysql_query ("select * from live2_news_video where live2_news_video.ID_news = $ID");
while ($arrayvideo = mysql_fetch_array ($queryvideo))
{
$arrayvideo['didascalia'] = stripslashes ($arrayvideo['didascalia']);
$linkvideo = '$arrayvideo['indirizzo']';
print "
<tr>
<td>
<object width=\"220\" height=\"165\"><param name=\"movie\" value=\"$linkvideo\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"$linkvideo\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"220\" height=\"165\"></embed></object>
</td>
<td>$arrayvideo[nome]</td>
<td>$arrayvideo[didascalia]</td>
<td>
<form enctype=\"text\" method=\"post\" action=\"addextranewsvideo.php\">
<input type=\"hidden\" name=\"ID_video_eliminato\" value=\"$arrayvideo[ID]\" />
<input type=\"hidden\" name=\"video_da_eliminare\" value=\"$arrayvideo[nome]\" />
<input type=\"submit\" name=\"EliminaVideo\" value=\"Elimina\" /></form>
</td>
</tr>
";
}
?>
</table>
 

Discussioni simili