[RESOLU] Code ne fonctionne que sur une seul base de données

Eléphant du PHP | 385 Messages

18 juil. 2016, 15:36

Bonjour à tous,

J'ai crée un script qui va à partir de fichiers me construire un zip, après cela il le télécharge en javascri^pt sur le client puis en ajax le détruit.

Code : Tout sélectionner

// Partie zip //fonction permettant de créer le zip function zip(num_affaire,id_dm) { requete = CreerRequete(); if (requete) { requete.open("GET", "formulaire/fichier/zip.php?num_affaire="+num_affaire+"&id_dm="+id_dm, false); requete.send(); download_zip(num_affaire); } } //fonction permettant de télécharger le zip function download_zip(num_affaire) { var url = "formulaire/fichier/"+num_affaire+".zip"; var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); if(http.status!=404) { window.location = url; setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000); } } //fonction permettant la suppression function delete_zip_on_server(num_affaire) { requete = CreerRequete(); if (requete) { requete.open("GET", "formulaire/fichier/delete_zip.php?num_affaire="+num_affaire, false); requete.send(); } }
pour le php :

Code : Tout sélectionner

<?php include("../../../../connexion.php"); $zip = new ZipArchive; $file = $_GET['num_affaire'].'.zip'; $res = $zip->open($file, ZipArchive::CREATE); /* Séléction des fichiers de l'affaire */ $req_fichier = "SELECT * FROM POP_FICHIER_DM WHERE ID_DM = :iddm"; $stmt = oci_parse($conn, $req_fichier); oci_bind_by_name($stmt,':iddm', $_GET['id_dm'],OCI_B_INT); oci_execute($stmt); /* Ajout des fichiers dans le zip */ while($fichier= oci_fetch_assoc($stmt)) { $requete4 = "SELECT TYPE_FICHIER_DM,FICHIER_DM,LABEL_FICHIER_DM FROM POP_FICHIER_DM WHERE ID_FICHIER_DM = ".$fichier['ID_FICHIER_DM']; $statement4 = oci_parse($conn, $requete4); oci_execute($statement4,OCI_COMMIT_ON_SUCCESS); $list4 = oci_fetch_assoc($statement4); $fichier_data = $list4['FICHIER_DM']->load(); $zip->addFromString($fichier['LABEL_FICHIER_DM'], $fichier_data); } $zip->close(); oci_free_statement($stmt); oci_free_statement($statement4); ?>
ce code fonctionne très bien seul problème, par contre quand je change la base de données si je clique pour télécharger le zipp j'ai

Code : Tout sélectionner

dm.js:347 HEAD http://ami2-sv10029/pop_maj/module/demande/formulaire/fichier/DL%20C02089220-004.zip 404 (Not Found)
qui vient de

Code : Tout sélectionner

var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); if(http.status!=404) { window.location = url; setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000); }
le zip n'ai crée. Logiquement je change juste mon fichier de connexion à la base de données je ne comprend pas pourquoi le zipp ne se créer pas. Auriez vous un conseil pour m'aider à localiser le problème? Merci à vous.

Eléphant du PHP | 385 Messages

18 juil. 2016, 16:19

Résolu apparemment la seconde base à du mal avec les requêtes préparé si je fais une requête normal cela fonctionne.