je reprend le travail d'un ancien stagiaire et je me retrouve devant une erreur que je ne comprend pas trop (voire pas du tout
Fatal error: Uncaught exception 'OdfException' with message 'Nothing to parse - check that the content.xml file is correctly formed' in C:\wamp\www\vespa_b1\rapport\odtphp\library\odf.php on line 61
OdfException: Nothing to parse - check that the content.xml file is correctly formed in C:\wamp\www\vespa_b1\rapport\odtphp\library\odf.php on line 61
public function __construct($filename, $config = array())
{
if (! is_array($config)) {
throw new OdfException('Configuration data must be provided as array');
}
foreach ($config as $configKey => $configValue) {
if (array_key_exists($configKey, $this->config)) {
$this->config[$configKey] = $configValue;
}
}
if (! class_exists($this->config['ZIP_PROXY'])) {
throw new OdfException($this->config['ZIP_PROXY'] . ' class not found - check your php settings');
}
$zipHandler = $this->config['ZIP_PROXY'];
$this->file = new $zipHandler();
if ($this->file->open($filename) !== true) {
throw new OdfException("Error while Opening the file '$filename' - Check your odt file"); // LIGNE 61
}
if (($this->contentXml = $this->file->getFromName('content.xml')) === false) {
throw new OdfException("Nothing to parse - check that the content.xml file is correctly formed");
}
$this->file->close();
Et en dessous de ça, un Call Stack avec des lignes m'indiquant des erreurs ici :
{main}( ) ..\generate_rapport.php:0
2 0.1041 2325480 generateRapport( ) ..\generate_rapport.php:147
3 0.1041 2325480 mergeODT( ) ..\generate_common.php:194
4 0.1050 2325568 merge( ) ..\generate_common.php:181
5 0.1052 2326320 Odf->__construct( ) ..\generate_merge.php:52
generate_rapport.php :
// ********************************************************************
// PARTIE : CREATION DES DOCUMENTS WORD ET PDF
// ********************************************************************
$dossier = '../rapports/'.$_POST['numero_affaire'].'/';
if(!is_dir($dossier)){
@mkdir($dossier);
}
$reqnum = "SELECT id_rapport FROM rapport WHERE id_affaire = '".$_SESSION['session_numero_affaire']."'";
$resultnum = mysql_query($reqnum) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $reqnum);
$numfichier = mysql_num_rows($resultnum); +1;
if(!is_numeric($numfichier) || $numfichier==0)
$numfichier = 1;
$file_name = $dossier.'Rapport_Client_' . $_SESSION['session_numero_affaire']."_".$numfichier.".odt";
$req = "SELECT nom_fichier FROM region r JOIN modele m ON (r.id_modele = m.id_modele) WHERE r.id_region='".$_SESSION['id_region']."'";
$query = mysql_query($req) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $req);
if(mysql_num_rows($query)>=1){
$resultat=mysql_fetch_row($query);
$template = "../template/".$resultat[0];
}
else{
echo '<p class="erreur"> Il n\'existe pas de modèle de rapport pour votre région. </p>';
echo '<div class="faux_bouton"><a href="edit_rapport.php"> Retour </a></div>';
include("../include/footer.php");
exit;
}
/*$cheminModele = $_SERVER['DOCUMENT_ROOT']."edf_v8/template/".$resultat[0];
if(strstr(PHP_OS,'WIN')){
$cheminModele = str_replace("/", "\\", $cheminModele);
}*/
//$file_name = '../rapports/Rapport_Client_' . $_POST['numero_affaire'];
//Définition de l'extension Word
$extension_word = '.doc';
//Définition de l'extension PDF
$extension_pdf = '.pdf';
$arraymsg = generateRapport($template,$file_name); //LIGNE 147
generate_common.php :
function mergeODT($template,$dest){
if(checkTemplate($template)){
//echo"generate_merge.php?template=".$template."&filename=".$dest;
//include("generate_merge.php?template=".$template."&filename=".$dest);
merge(substr($template, 0,-4).".odt",$dest); //LIGNE 181
}
else return false;
}
/**
*
* Fonction qui vérifie si le modèle existe, effectue la fusion si possible, et génère les fichiers .doc et .pdf qui correspondent.
* @param $template Le modèle à utiliser
* @param $dest Le nom du fichier temporaire
* @return <array(Numero, Message) Contient un numéro (erreur, succès) et un message.
*/
function generateRapport($template,$dest){
mergeODT($template,$dest); //LIGNE 194
$msgarray = generateFromODT($dest);
return $msgarray;
generate_merge.php:
function merge($template,$filename){
global $rapport_param;
global $merge_param;
global $list_param;
//Vérification si le modèle existe
//$template = $_GET['template'];
//$filename = $_GET['filename'];
//echo $filename;
if($filename == "" || !file_exists($template)){
exit(0);
}
else{
//echo "fileFound";
}
//Ouverture du modèle
if(stristr(PHP_OS, "win")){
$filename = str_replace("/", "\\", $rapport_param['root'].substr($filename,3));
$template = str_replace("/", "\\", $rapport_param['root'].substr($template,3));
}else{
$filename = $rapport_param['root'].substr($filename,3);
$template = $rapport_param['root'].substr($template,3);
}
$odf = new odf($template); //LIGNE 52
Qu'est ce qui pourrait mal fonctionner ? Parce que là, sérieusement je ne comprend pas grand chose à tout ça..