kenji Posted August 9, 2005 Share Posted August 9, 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 Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 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 ? Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 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 Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 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. Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 2005 test fait mais toujours erreur Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 2005 la fonction est dans un fichier php séparé ? Comment se passe l'enchaînement des appels ? Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 2005 oui les fonctions sont une page separee je fait un require en debut de page ensuite le traitement de la page Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 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. Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 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 Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 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 ... Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 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 Link to comment Share on other sites More sharing options...
fabien29200 Posted August 10, 2005 Share Posted August 10, 2005 il n'y a que 3 variables dans ta fonction ... ça doit pas être long à chercher ... Link to comment Share on other sites More sharing options...
kenji Posted August 10, 2005 Author Share Posted August 10, 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.