# ics Datei erstellen



## hikeda_ya (17. Juli 2010)

Hallo Community,

ich habe da mal wieder eine für Euch Profis eine leichte Aufgabe. 

Ich stehe jedoch seit 3 Monaten wie der Ochse vor dem Berg.

Was ich will?
Ich will aus einer MySQL Datenbank Termine direkt als ics Datei bereit stellen, damit diese in Kalender improtiert werden können.

Ich habe bereits angefangen den Code zu scripten aber es tut sich überhaupt nichts wenn der Code aufgerufen wird.
der Aufruf

```
<?php



// Header senden
header("Content-Disposition: attachment; filename = einedatei.icv"); 
header("Content-Length: ".strlen($string));
header("Content-Type: text/plain");

// Datei ausgeben
echo $require_once 'calender2.php';

?>
```

Die includete Datei


```
<?php

$res = sql ("	select * from $t_termine1
		where t_id = '".$_REQUEST['Calendereintrag']."' ");

while ($row = mysql_fetch_assoc($res)){



// Datei zusammensetzen in $string
$string = 
"BEGIN:VCALENDAR \n"
"VERSION:1.0 \n".
"BEGIN:VEVENT \n".
"CATEGORIES:MEETING \n".
"STATUS:TENTATIVE \n".
"DTSTART:".$row['jahr'].$row['monat'].$row['tag']."T".$row['wann']."Z \n".
"DTEND:".$row['jahr'].$row['monat'].$row['tag']."T".$row['wann']."Z \n".
"SUMMARY:".$row['was']."\n".
"LOCATION: ".$row['wo']."\n".
"DESCRIPTION:".$row['zusatz']."\n".
"CLASS:PRIVATE \n".
"END:VEVENT \n".
"END:VCALENDAR \n";}


// Header senden
header("Content-Disposition: attachment; filename = einedatei.icv"); 
header("Content-Length: ".strlen($string));
header("Content-Type: text/plain");

// Datei ausgeben
echo $string;

?>
```

es passiert gar nichts - ich habe nur eine leere weise Seite


----------



## timestamp (17. Juli 2010)

Hi

ich hab erstmal ein Paar Fragen:
Wieso sendest du zweimal den gleichen Header (beim ersten mal scheint $string sogar noch undefiniert zu sein). Und wofür ist die Schleife da? Wenn du nur ein Ergebnis hast, kannst du die Schleife auch weglassen 

Wenn du den Inhalt einer includierten Dateiausgeben möchtest, musst du nicht extra echo davorschreiben, da dies lediglich den Rückgabewert der Funktion ausgibt. Entweder müssen jegliche Ausgaben mit return aus der includeten Datei zurück gegeben werden oder du lässt das echo einfach weg, der echo Code in der includeten Funktion wird sowieso ausgeführt. (Ich vermute auch gerade mal dass dort der Fehler liegt).


----------



## Parantatatam (17. Juli 2010)

Ich hätte da auch noch zwei Sachen:
1. so sieht es aus (Zeile 11) (Dollarzeichen zu viel):

```
echo $require_once 'calendar2.php';
```
so sollte es aussehen:

```
require_once 'calendar2.php';
```
2. der Dateisuffix von iCalendar-Dateien ist "text/calendar" und nicht "text/plain".


----------

