login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met php script in combinatie met html5 audio element

Offline stefan1987 - 27/01/2011 15:29 (laatste wijziging 27/01/2011 15:34)
Avatar van stefan1987Nieuw lid Hoi allemaal,

Voor mijn muziek website ben ik bezig met een php script in combinatie met het html5 audio element om een dynamische playlist te maken.

Hier de code voor de html5 audio speler:

  1. <audio src="http://www.radiostereo.nl/paginas/muziek/afspeellijsten/html5.php" controls="controls" autoplay="autoplay" loop="loop">
  2. </audio>


En hier de code voor de dynamische playlist

  1. <?
  2.  
  3. // Verbinding maken met de database
  4. mysql_connect("***","***","***");
  5.  
  6. // Kijken of er een nummer in de playlist_tabel staat
  7. $sql = "SELECT muziek_id FROM playlist ORDER BY id ASC";
  8. $query = mysql_query($sql);
  9. $rij = mysql_fetch_object($query);
  10. $muziek_id = htmlspecialchars($rij->muziek_id);
  11. // Zo ja, dan informatie uit de muziek_tabel halen
  12. $sql = "SELECT * FROM `muziek` WHERE id='$muziek_id'";
  13. $query = mysql_query($sql);
  14. $rij = mysql_fetch_object($query);
  15. $id = htmlspecialchars($rij->id);
  16. $artiest = htmlspecialchars($rij->artiest);
  17. $titel = htmlspecialchars($rij->titel);
  18. $link = htmlspecialchars($rij->link);
  19. $album = htmlspecialchars($rij->album);
  20. // Nummer uit de playlist_tabel verwijderen
  21. $sql = "DELETE FROM playlist WHERE muziek_id=$muziek_id";
  22. $query = mysql_query($sql);
  23. // Aantal keer afgespeeld van het gekozen nummer verhogen met 1
  24. mysql_query("UPDATE muziek SET afgespeeld=afgespeeld + 1 WHERE id= '$id' ");
  25.  
  26.  
  27. // Wanneer er geen nummers in de playlist_tabel staan een random nummer kiezen
  28. if(!$link){
  29. // Aantal nummers tellen
  30. $sql = "SELECT id FROM `muziek` ORDER BY id DESC ";
  31. $query = mysql_query($sql);
  32. $rij = mysql_fetch_object($query);
  33. $tot = htmlspecialchars($rij->id);
  34. // Random nummer bepalen
  35. $random = rand(1, $tot);
  36. // Informatie uit de muziek_tabel halen
  37. $sql = "SELECT * FROM `muziek` WHERE id='$random'";
  38. $query = mysql_query($sql);
  39. $rij = mysql_fetch_object($query);
  40. $id = htmlspecialchars($rij->id);
  41. $artiest = htmlspecialchars($rij->artiest);
  42. $titel = htmlspecialchars($rij->titel);
  43. $link = htmlspecialchars($rij->link);
  44. $album = htmlspecialchars($rij->album);
  45. }
  46.  
  47. // Speciale characters in de link omzetten
  48. $link = str_replace("&amp;", "&", $link);
  49. $link = str_replace(" ", "%20", $link);
  50. $link = str_replace("é", "%c3%a9", $link);
  51.  
  52. //Header
  53. header('Content-type: audio/mpeg');
  54. header('Content-Length: '.filesize($link));
  55. header("Expires: -1");
  56. header("Cache-Control: no-store, no-cache, must-revalidate");
  57. header("Cache-Control: post-check=0, pre-check=0", false);
  58. readfile($link);
  59.  
  60. ?>


Nu werkt het script redelijk goed.
Behalve wanneer ik een nummer aan de playlist toevoeg.
In plaats van dat het nummer in de playlist wordt afgespeeld wordt er toch een random nummer afgespeeld.
Nu lijkt het dus dat het eerste gedeelte van het script niet werkt
(waar het nummer uit de playlist wordt gekozen)
maar wanneer ik de onderstaande regels verwijder:

// Nummer uit de playlist_tabel verwijderen
$sql = "DELETE FROM playlist WHERE muziek_id=$muziek_id";
$query = mysql_query($sql);


wordt het nummer uit de playlist WEL afgespeeld.

Maar dan heb ik dus het probleem dat het nummer oneindig gekozen blijft worden, omdat het nummer niet wordt verwijdert uit de playlist.

Iemand enig idee hoe dit kan?

Bedankt alvast!

Stefan

Edit: Je kunt het script proberen door naar deze pagina te gaan met bijvoorbeeld google chrome http://www.radiostereo.nl?frame
En dan nummers toe te voegen aan de playlist

2 antwoorden

Gesponsorde links
Offline Jelmerholland - 27/01/2011 17:50
Avatar van Jelmerholland PHP beginner Begin eerst eens met het escapen van je variablen..

dus ipv:
  1. $var = "appel";
  2. echo "Ik vind een $var lekker";

doe je:
  1. $var = "appel";
  2. echo "Ik vind een " . $var . " lekker";


Dat is sowieso al beter.

Bovendien zie ik je op regel 48 speciale karakters uit de link halen?


PHP.net: urlencode en PHP.net: urldecode zijn hier wel van toepassing.

Verder zie ik zo heel snel niet echt een puntje...
Offline stefan1987 - 28/01/2011 00:39
Avatar van stefan1987 Nieuw lid Hoi Jelmerholland,

Hey escapen van de variablen help helaas niet..
Nog meer iedeën iemand?

Stefan
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.357s