kenji Posté(e) le 9 août 2005 Partager Posté(e) le 9 août 2005 hello voila mon code : //creation du fichier xml $result = $Bdd -> Send_Query("SELECT * FROM file_xml"); if($objet = $Bdd -> get_object($result)){ $id_file = $objet -> id_file_xml; } if($id_file<>''){ if(file_exists('../../cache/liste'.$id_file.'.xml')){ @unlink('../../cache/liste'.$id_file.'.xml'); } $Bdd -> Send_Query("DELETE FROM file_xml"); } $Bdd -> Send_Query("INSERT INTO file_xml (date,heure) VALUES (now(),now())"); $id_xml = $Bdd -> insert_id(); $xml = '<?xml version="1.0" encoding="UTF-8" ?>'; $xml .= '<main>'; $i = 1; $result = $Bdd -> Send_Query("SELECT * FROM maisons"); while($objet = $Bdd -> get_object($result)){ $nom = stripslashes($objet -> m_nom); //$nom = SansAccents($nom); //=> si je decomente j'ai une super erreur $xml .= '<maisons id="'.$i.'" nom="'.$nom.'"> <lieu departement="" numero="'.$objet -> m_dpt.'" /> <maisons adresse="" liens="maison_presentation_'.$objet -> id_maisons.'.html"/> </maisons>'; } $xml .= '</main>'; $handle = fopen('../../cache/liste'.$id_xml.'.xml', 'w+'); fwrite($handle, $xml); fclose($handle); la fonction : function SansAccents($chaine) { $char_old = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ'; $char_new = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'; return(strtr($chaine,$char_old,$char_new)); } et le resultat : APACHE.EXE - Erreur d'application L'instruction à "0x006fb7c7" emploie l'adresse mémoire "0x65x6128". La mémoire ne peut etre read APACHE.EXE - Erreur d'application L'instruction à "0x1377d04" emploie l'adresse mémoire "0x00000008". La mémoire ne peut etre read ensuite j'ai une erreur dans l'interpreteur le fichier php5ts.dll et apache2.dll le script fonctionne parfaitement si je ne me sers pas de la fontion sans accent le problème est que je suis oblige car le xml est appele depuis flash ensuite sur une carte de france pour situer les différents points et flash aime pas les accents :( j'ai fait une verif des fichiers systeme de windows tout est ok memtest de la memoire tout est ok resintall de apache et php4/php5 mais toujours meme problème test avec apache 1.3, 2.53, 2.054 version de php test 5.03,5.04,4.4.0 j'ai fait le test sur mon autre serveur sous linux et tout fonctionne donc ca vient de windows une idée ? merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 Est-ce que PHP plante si tu appelles cette fonction dans une page simple ? Est-ce que l'encodage de ton fichier où est ta fonction supporte ces accents ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 bien vu en effet quand je l'apelle seul dans une page cela ne plante pas ce qui est etrange quand meme car dans mon script si je la met cela plante et des que je l'enleve le reste du script passe bien Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 D'accord, maintenant tente en remplaçant ta chaîne avec les accents par celle sans accent : function SansAccents($chaine) { $char_old = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'; $char_new = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'; return(strtr($chaine,$char_old,$char_new)); } Elle sera inutile, mais c'est juste pour voir si ça plante pas. Ca permettra de voir si ça vient pas d'un problème d'encodage. Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 test fait mais toujours erreur Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 la fonction est dans un fichier php séparé ? Comment se passe l'enchaînement des appels ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 oui les fonctions sont une page separee je fait un require en debut de page ensuite le traitement de la page Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 Est-ce que si tu crées une nouvelle fonction avant le sansAccent, et que tu l'appelles ça plante ? Si oui, il y a ptet un pb au niveau des droits d'accès. Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 trouve si je commente cela : if(isset($_POST["nom"])){ $nom = addslashes($_POST["nom"]);} en debut de page ca fonctionne des que je decommente ca deconne comme je traite le formulaire en debut de page j'appelle la variable je change de le nom de la variable $nom lors de mon appel de la fonction et ca passe assez etrange car dans tous les cas la variable non n'est pas vide l'erreur doit venir d'autre part Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 ben il y a des visibilités de variables. Tu ne peux pas mettre comme ça le nom d'une variable déjà utilisée + haut dans le code ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 oui en effet vu que la page contient pres de 800 lignes et un nombre incalculable de variables j'en ai dupliquer une :) meme en changeant le nom de la variable ca me fait toujours une erreur j'ai un piste quand meme si je commente tous les variables que je recupere en debut de page et que je laisse la fonction ca passe et inversement je commente la fonction et laisse les $_POST ca passe il y'a un conflict qq part mais la chaque variable est uniqueet initialise avant utilisation Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 août 2005 Partager Posté(e) le 10 août 2005 il n'y a que 3 variables dans ta fonction ... ça doit pas être long à chercher ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
kenji Posté(e) le 10 août 2005 Auteur Partager Posté(e) le 10 août 2005 a devenir dingue des fois j'ai virer un espace dans une autre fonction qui traitait les données recuperés soit en get soit en post et depuis ca fonctionne faut vraiment chercher des fois un simple espace qui peut faire cette erreur mais le rapport avec cette erreur j'avoue que j'en sais trop rien la car il suffisait que je commente la fonction sansaccents pour que cela fonctionne et de plus je n'avais aucune erreur de syntaxe de php juste erreur de dll merci de ton aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.