Achtergrondmuziekje maar 1x afspelen

Status
Niet open voor verdere reacties.

turbojohn

Gebruiker
Lid geworden
26 jun 2007
Berichten
262
Hoi,

Ik zou graag op mijn site zo willen hebben dat mijn achtergrondmuziekje maar 1x per sessiebeurt afspeelt. Dus, als de bezoerk komt, dan moet het geluidje afspelen, daarna niet meer. (Totdat de bezoeker bijv. na cookie_lifetime=3500 weer terugkomt).
Is dit te volgen?

Kan iemand mij helpen ermee? Ik heb al heel wat gestuntelt met php, maar het lukt gewoon niet.
Ik zat zelf met zoiets:
PHP:
<?php
	
	$autostart = $_POST['autostart'];
	if(!isset($_POST['autostart']))
		{
		<embed src="muziek/Toeterix.wav" hidden="true" autostart="true" loop="false">
		$_POST['autostart'] = false;
		} else {
	?>
 
Wat je even moet bedenken is dat je $_POST gebruikt:
PHP:
    $autostart = $_POST['autostart'];
een $_POST is niet een sessie. een $_POST is een 'gesubmit form'... (bij gebrek aan betere woorden hiervoor...)

Wat je even wilt bekijken is de $_SESSION variabele (google). Die zou moeten werken.

Dan moet je ook even je structuur omgooien:

PHP:
<?php 

if(!(isset($_SESSION['autostart'])))     // weet niet of dit zo kan, denk t wel?
{
$_SESSION['autostart'] = true;
}

   if(isset($_SESSION['autostart']) && $_SESSION['autostart'] == true) 
   { 
      <embed src="muziek/Toeterix.wav" hidden="true" autostart="true" loop="false"> 
      $_SESSION['autostart'] = false; 
    }

?>



:thumb:
 
Laatst bewerkt:
PHP:
<?PHP
session_start();  // zorg dat deze nog boven de <html> staat. Voor de session variable aangepast wordt mag er geen weergave vanuit php plaatsvinden (echo / print)

if (!isset($_SESSION['autostart')) {
  echo "<embed src=\"muziek/Toeterix.wav\" hidden=\"true\" autostart=\"true\" loop=\"false\">";
  $_SESSION['autostart'] = true;
}
?>
 
Laatst bewerkt door een moderator:
best daarvoor nog een ob_start(); en ob_flush(); Daarnet had iemand daar nog problemen mee. "Headers already been sent" en zo.. Klassiek probleem
 
Lukt niet, krijg wit beeld

Hoi,

Allereerst bedankt voor jullie reacties, maar het probleem is er nog: als ik de codes die jullie mij gaven invullen (of zoals stefanmethorst aangaf) dan krijg ik wit beeld.
Hoe kan dat, waar kan dat aan liggen?
 
(die van stefanmethorst is beter dan dievan mij, gebruik die)

check dan de bron van je pagina eens! Als het goed is staat er iets. Vertel eens wat er staat?!

:thumb:
 
best daarvoor nog een ob_start(); en ob_flush();
Zoals eerder gezegd: Geen oplossing maar het probleem negeren.

Hoe ziet je code er nu uit? (totaal)
 
Ik heb zegmaar dat scripje van stefanmethors gebruikt incl ob_start(); en ob_flush(); maar dan komt er een pagina 500 interne serverfout.
 
Hier is de code van stefanenhorst, op mn server & verbeterd:

http://www.vegras-studios.com/x/helpmij/embed1/test1.php

Als je de bron bekijkt, zie je de <embed bla bla> staan (in html). Als je op F5 drukt (refresh) en je bekijkt de bron nogmaals, zie je GEEN '<embed blah blah>' etc.

Dit is de code:
PHP:
<?php


session_start();  // zorg dat deze nog boven de <html> staat. Voor de session variable aangepast wordt mag er geen weergave vanuit php plaatsvinden (echo / print)

if (!isset($_SESSION['autostart'])) {
  echo "<embed src=\"muziek/Toeterix.wav\" hidden=\"true\" autostart=\"true\" loop=\"false\"></embed>";
  $_SESSION['autostart'] = true;
}


?>

Wat je vergat is de '</embed>' en dat je ook nog <html>, <body> en <head> tags nodig hebt!


:thumb:
 
Laatst bewerkt:
ob_start() en ob_flush() moet je gelijk afschaffen.

Die worden niet op de juiste manier gebruikt.

Include je deze pagina ergens of is dit een pagina opzich?

edit: ik haak af, door elkaar heen adviezen geven heeft geen zin. Vegras: it's all yours ;)
 
Dit is een pagina op zich(index.php) met via css included andere pagina's zegmaar (lekker vaag). Maar het is in ieder geval een pagina op zich. Ik ga even dat van Vegras proberen en dan hoor je zsm meer.
 
Het lukt nog niet.
Zou het aan mijn .htacces bestand kunnen liggen?

PHP:
# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
 
Ik denk ook dat het eerder aan de host ligt, want na server fout 500 kwam het met originele code ook (die serverfout).
 
Dat hoeft niet per sé aan de host te liggen, heb wel eens een vreemde error gehad na een verkeerd gecodeerde php pagina.

:thumb:


[edit]
overgens,
(...) dan krijg ik wit beeld.
Ik krijg hier ook een wit beeld, dat komt door de 'hidden=\"true\"' in de <embed> ;)
[/edit]
 
Laatst bewerkt:
Oké.
De totale code:

PHP:
<?PHP
session_start();  // zorg dat deze nog boven de <html> staat. Voor de session variable aangepast wordt mag er geen weergave vanuit php plaatsvinden (echo / print)

if (!isset($_SESSION['autostart')) {
  echo "<embed src=\"muziek/Toeterix.wav\" hidden=\"true\" autostart=\"true\" loop=\"false\"></embed>";
  $_SESSION['autostart'] = true;
}
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>&laquo;&laquo; Retro-Cars &raquo;&raquo; D&eacute; plaats voor uw oldtimer</title>
  <link rel="stylesheet" href="style.css" media="screen" type="text/css">
</head>

<body>
	<div id="head">
  		<div id="menu"><?php include ('menu.htm'); ?></div>
  		<div id="center">
  		<b>Welkom</b> op Retro-Cars.<p>
        <br>	
        Middels het menu hiernaast kunt u navigeren naar foto's, informatie 
        enzovoort. <br>
        Voor meer informatie of boeking kunt u terecht bij de contactpagina (zie 
        hiernaast '<a href="contact.php"><font color="#FFFFFF">Contact</font></a>'). <br>

        </div>
  		<div id="rechts">
  		<?php include ('balkrechts.htm'); ?>
  		<div id="muziek">
			<?php include ('muziek.php'); ?>
		</div>	
  		</div>

		
	</div>
	<?php include 'reclame.htm' ?>
</body>
     
</html>
 
heb de fout gevonden!

Wat je doet is html-code VOOR de <html> echoen. Dit resulteerd dus in de server error 500 ;)

Hieronder je code, zou 100% moeten werken:
PHP:
<?php //kleine letters
session_start();  // zorg dat deze nog boven de <html> staat. Voor de session variable aangepast wordt mag er geen weergave vanuit php plaatsvinden (echo / print) 
//geen html echoen VOOR de <body> tag open is!
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html> 
<head> 
  <title>&laquo;&laquo; Retro-Cars &raquo;&raquo; D&eacute; plaats voor uw oldtimer</title> 
  <link rel="stylesheet" href="style.css" media="screen" type="text/css"> 
</head> 

<body> 

<?php
if (!isset($_SESSION['autostart'])) {  //hier was een ' ] ' vergeten
  echo "<embed src=\"muziek/Toeterix.wav\" hidden=\"true\" autostart=\"true\" loop=\"false\"></embed>"; 
  $_SESSION['autostart'] = true; 
} 
?>

    <div id="head"> 
          <div id="menu"><?php include ('menu.htm'); ?></div> 
          <div id="center"> 
          <b>Welkom</b> op Retro-Cars.<p> 
        <br>     
        Middels het menu hiernaast kunt u navigeren naar foto's, informatie  
        enzovoort. <br> 
        Voor meer informatie of boeking kunt u terecht bij de contactpagina (zie  
        hiernaast '<a href="contact.php"><font color="#FFFFFF">Contact</font></a>'). <br> 

        </div> 
          <div id="rechts"> 
          <?php include ('balkrechts.htm'); ?> 
          <div id="muziek"> 
            <?php include ('muziek.php'); ?> 
        </div>     
          </div> 

         
    </div> 
    <?php include 'reclame.htm' ?> 
</body> 
      
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan