2015-09-15 3 views
0

Я запускаю следующий сценарий, чтобы попытаться создать отдельные события календаря для каждого курса и перечислить те, которые забронировали как ATTENDEES. Когда я запускаю скрипт, я получаю загруженный файл .ics, но при открытии я получаю это сообщение об ошибке «Календарь не может прочитать этот файл календаря. В календарь не добавлено никаких событий».Помощь MySQL ... Сообщение об ошибке, возникающее при загрузке файла?

require_once('calendar.php'); 
    $start = date('Ymd', $row['CourseStartDate']) . 'T' .date('His', $row['CourseStartDate']) . 'z'; 
    $end = date('Ymd', $row['CourseEndDate']) . 'T' .date('His', $row['CourseEndDate']) . 'z'; 
    header("content-type:text/calendar;charset=utf-8"); 
    header("content-disposition:inline;filename=bookings.ics"); 
     echo "BEGIN:VCALENDAR\n"; 
     echo "VERSION:2.0\n"; 
     echo "METHOD:REQUEST\n"; 
    while($row = mysql_fetch_assoc($result)){ 
     echo "BEGIN:VEVENT\n"; 
     echo "UID:".date('Ymd') . 'T' .date('His').rand()."firstaid4life.com"; 
     echo "DTSTAMP:".date('Ymd').'T'.date('His')."/n"; 
     echo "DTSTART:{$start}\n"; 
     echo "DTEND:{$end}\n"; 
     echo "SUMMARY:{$row['CourseTitle']}\n"; 
     echo "ATTENDEES:{$row['Attendees']}\n"; 
     echo "END:VEVENT\n"; 
    } 
     echo "END: VCALENDAR\n"; 
+0

Ну, он всегда будет загружаться, так как без каких-либо ошибок, поскольку ваш заголовок задан таким образом. поэтому даже html-страница с ошибками php будет загружаться как файл ics, и, конечно, вы не можете ее открыть, вы должны вывести данные перед настройкой заголовка, чтобы убедиться, что данные такие, как вы этого хотите. – DarkMukke

ответ

0

Откройте его с помощью текстового редактора или закомментируйте ваши заголовки, чтобы увидеть ошибку, происходящий (возможно, не будет Получать никаких результатов .. следовательно, нет строки)

В дополнение .. UID, довольно случайный , почему бы не хешировать некоторые биты, чтобы UID был согласован при каждой загрузке?

+0

Я открыл файл .ics в скобках и он точно перечисляет все события в следующем формате ... # представляют данные, которые я не хочу использовать. 'НАЧАТЬ: VEVENT UID: 20150915T09341310723401 ######## DTSTAMP: 20150915T093413/nDTSTART: 19700101T003335z DTEND: 19700101T003335z РЕЗЮМЕ: ############# Присутствовали: ## # ###, ### ##### END: VEVENT ' Я не уверен, что время рендеринга в правильном формате?!? Также DTSTART & END читаются как 1970, что неверно. – webcreator25

+0

1970 в основном указывает на то, что unixtime даты равен нулю (0) , что верно, поскольку $ row еще не существует на date ('His', $ row ['CourseStartDate']). 'z' насколько вы показали весь свой код. –

Смежные вопросы