Encode calendar to UTF-8

This commit is contained in:
Laurent Destailleur 2008-01-20 23:18:18 +00:00
parent af8a582424
commit 6c0907f15e

View File

@ -63,7 +63,7 @@ $action = $_GET["action"];
$original_file = urldecode($_GET["file"]); $original_file = urldecode($_GET["file"]);
$modulepart = urldecode($_GET["modulepart"]); $modulepart = urldecode($_GET["modulepart"]);
$urlsource = urldecode($_GET["urlsource"]); $urlsource = urldecode($_GET["urlsource"]);
// D<EFBFBD>fini type (attachment=1 pour forcer popup 'enregistrer sous') // Define type (attachment=1 to force popup 'save as')
$type = urldecode($_GET["type"]); $type = urldecode($_GET["type"]);
$attachment = true; $attachment = true;
if (eregi('\.sql$',$original_file)) { $type='text/plain'; $attachment = true; } if (eregi('\.sql$',$original_file)) { $type='text/plain'; $attachment = true; }
@ -77,16 +77,17 @@ if (eregi('\.tiff$',$original_file)) { $type='image/tiff'; $attachment = true;
if (eregi('\.vcs$',$original_file)) { $type='text/calendar'; $attachment = true; } if (eregi('\.vcs$',$original_file)) { $type='text/calendar'; $attachment = true; }
if (eregi('\.ics$',$original_file)) { $type='text/calendar'; $attachment = true; } if (eregi('\.ics$',$original_file)) { $type='text/calendar'; $attachment = true; }
// Suppression de la chaine de caract<EFBFBD>re ../ dans $original_file // Suppression de la chaine de caractere ../ dans $original_file
$original_file = str_replace("../","/", "$original_file"); $original_file = str_replace("../","/", "$original_file");
// find the subdirectory name as the reference // find the subdirectory name as the reference
$refname=basename(dirname($original_file)."/"); $refname=basename(dirname($original_file)."/");
$accessallowed=0; $accessallowed=0;
$encoding='ISO-8859-1'; // By default
$sqlprotectagainstexternals=''; $sqlprotectagainstexternals='';
if ($modulepart) if ($modulepart)
{ {
// On fait une v<EFBFBD>rification des droits et on d<>finit le r<>pertoire concern // On fait une verification des droits et on definit le repertoire concerne
// Wrapping pour les factures // Wrapping pour les factures
if ($modulepart == 'facture') if ($modulepart == 'facture')
@ -320,17 +321,17 @@ if ($modulepart)
if ($modulepart == 'export') if ($modulepart == 'export')
{ {
// Aucun test necessaire car on force le rep de doanwload sur // Aucun test necessaire car on force le rep de doanwload sur
// le rep export qui est propre <EFBFBD> l'utilisateur // le rep export qui est propre a l'utilisateur
$accessallowed=1; $accessallowed=1;
$original_file=$conf->export->dir_temp.'/'.$user->id.'/'.$original_file; $original_file=$conf->export->dir_temp.'/'.$user->id.'/'.$original_file;
$sqlprotectagainstexternals = ''; $sqlprotectagainstexternals = '';
} }
// Wrapping pour l'<EFBFBD>diteur wysiwyg // Wrapping pour l'editeur wysiwyg
if ($modulepart == 'editor') if ($modulepart == 'editor')
{ {
// Aucun test necessaire car on force le rep de download sur // Aucun test necessaire car on force le rep de download sur
// le rep export qui est propre <EFBFBD> l'utilisateur // le rep export qui est propre a l'utilisateur
$accessallowed=1; $accessallowed=1;
$original_file=$conf->fckeditor->dir_output.'/'.$original_file; $original_file=$conf->fckeditor->dir_output.'/'.$original_file;
$sqlprotectagainstexternals = ''; $sqlprotectagainstexternals = '';
@ -347,10 +348,11 @@ if ($modulepart)
$sqlprotectagainstexternals = ''; $sqlprotectagainstexternals = '';
} }
// Wrapping pour les factures // Wrapping for webcalexport
if ($modulepart == 'webcal') if ($modulepart == 'webcal')
{ {
$accessallowed=1; $accessallowed=1;
$encoding='UTF-8';
$original_file=$conf->webcal->dir_temp.'/'.$original_file; $original_file=$conf->webcal->dir_temp.'/'.$original_file;
} }
} }
@ -372,14 +374,14 @@ if ($user->societe_id > 0)
} }
// Security: // Security:
// Limite acc<EFBFBD>s si droits non corrects // Limite acces si droits non corrects
if (! $accessallowed) if (! $accessallowed)
{ {
accessforbidden(); accessforbidden();
} }
// Security: // Security:
// On interdit les remont<EFBFBD>es de repertoire ainsi que les pipe dans // On interdit les remontees de repertoire ainsi que les pipe dans
// les noms de fichiers. // les noms de fichiers.
if (eregi('\.\.',$original_file) || eregi('[<>|]',$original_file)) if (eregi('\.\.',$original_file) || eregi('[<>|]',$original_file))
{ {
@ -431,12 +433,13 @@ else
} }
// Les drois sont ok et fichier trouv<EFBFBD>, on l'envoie // Les drois sont ok et fichier trouve, on l'envoie
if ($type) header('Content-type: '.$type); if ($encoding) header('Content-Encoding: '.$encoding);
if ($type) header('Content-Type: '.$type);
if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
// Ajout directives pour r<EFBFBD>soudre bug IE // Ajout directives pour resoudre bug IE
header('Cache-Control: Public, must-revalidate'); header('Cache-Control: Public, must-revalidate');
header('Pragma: public'); header('Pragma: public');