gegevens naar .ics bestand schrijven

Status
Niet open voor verdere reacties.

star3200

Gebruiker
Lid geworden
5 apr 2001
Berichten
409
Ik gebruik onderstaande code om gegevens uit een databank naar een .ics (iCal-formaat) te schrijven. dit werkt, maar het probleem is dat alle andere (html & php)code van de pagina ook in het .ics bestand worden weggeschreven. Dat is uiteraard niet de bedoeling..wie kan me verder helpen? Alvast bedankt

Code:
<tr><td><a href="<?php echo $_SERVER['PHP_SELF']; ?>?pag=<?php echo $pag ?>&a=<?php echo $afdelingID ?>&acta=<?php echo $acta ?>&actie=ical"><img style="margin:0px;" alt="test" id="zonderrand" title="test" src="prentjes/ical20.png"></a></td></tr></div>
	
<?php  
	
	if ($_GET['actie'] == "ical"){ 
	
    $bestandsnaam = "kalender_".str_replace(" ", "_", $tempafdeling["naam"]).".ics";
    header("Content-Type: text/Calendar");
    header("Content-Disposition: inline; filename=$bestandsnaam");

    ?>

BEGIN:VCALENDAR
VERSION:2.0
PRODID:iCal is fris
    <?php 
	
	if ($acta == "mijn"){
	
	$activi = mysql_query("SELECT id, naam, omschrijving, startdatum, stopdatum, afdelingWerkgroep FROM activiteiten WHERE    afdelingWerkgroep = 49 AND startdatum >='".date("Y-m-d H:i:s")."'");
	
	}else{
	
	$activi = mysql_query("SELECT id, naam, omschrijving, startdatum, stopdatum, afdelingWerkgroep FROM activiteiten WHERE    afdelingWerkgroep = ".$acta." AND startdatum >='".date("Y-m-d H:i:s")."'");
	
	}
        
		while ($rij = mysql_fetch_assoc($activi)) {

            $naam = $rij['naam'];
            $omschrijving = str_replace(array("\r", "\n", "\t"), '', nl2br($rij['omschrijving']));

            $vCalStart = date("Ymd\THi00", strtotime($rij['startdatum']));
            $vCalStop = date("Ymd\THi00", strtotime($rij['stopdatum']));

echo"
BEGIN:VEVENT
SUMMARY:".$naam." [".$tempafdeling["naam"]."]
DESCRIPTION;ENCODING=QUOTED-PRINTABLE: ".$omschrijving."
DTSTART:".$vCalStart." 
DTEND:".$vCalStop." 
END:VEVENT";
}
?>

END:VCALENDAR
    
	<?php 
	}
	?>

(deze code is dus een deel van de pagina, de inhoud van de variabelen, de <html></html> en dergelijke en de connectie naar de databank staat in deze code dus niet in.)

Het resultaat hiervan is dan, het orangje gedeelte zou er dus niet mogen instaan:

Code:
[COLOR="DarkOrange"]<tr><td><a href="/index.php?pag=89&a=49&acta=11&actie=ical"><img style="margin:0px;" alt="test" id="zonderrand" title="test" src="prentjes/ical20.png"></a></td></tr></div>[/COLOR]
	
BEGIN:VCALENDAR
VERSION:2.0
PRODID:iCal is fris
BEGIN:VEVENT
SUMMARY: hier komt een titel [naam]
DESCRIPTION;ENCODING=QUOTED-PRINTABLE: testomschrijving
DTSTART:20080420T140000 
DTEND:20080420T170000 
END:VEVENT
END:VCALENDAR
 
Gaat dit goed dan zonder foutmeldingen?

Volgens mij kun je nog altijd geen header aanpassen wanneer je al output genereerd...

Daarnaast vraag ik mij af waarom je niet gewoon het HTML gedeelte bovenin weglaat.
 
Gaat dit goed dan zonder foutmeldingen?

Ja, het bestand wordt correct gegenereerd..ik heb trouwens de basis hier vandaan:
Code:
http://www.phpbuilder.com/columns/chow20021007.php3?page=1


Daarnaast vraag ik mij af waarom je niet gewoon het HTML gedeelte bovenin weglaat.

Omdat op dezelfde pagina als de code ook een kalender staat, het is dan wanneer ze op de ical-afbeelding drukken dat er een .ics-bestand gemaakt wordt.

Ik had de eerder geposte code eerst als apart php-bestand, maar omdat de gegevens die uit de databank gehaald worden afhankelijk moeten zijn van keuzes die mijn bezoekers maken leek het mij het gemakkelijkste om alle code op dezelfde pagina te hebben..

Ik las net het vorige topic over "invulling bepalen door deel in de URL" en daarmee heb ik mijn probleem opgelost!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan