Aller au contenu

Troll

Actif
  • Compteur de contenus

    38
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre
  1. Salut à toutes et à tous. Après moultes recherches, une bonne centaines de liens Google testé, et plusieurs heures de prise de tête... j'abdique, j'en appelle à vos connaissances Le problème est le suivant : J'utilise AJAX pour envoyer une requête à un fichier PHP (jusque là, rien d'anormal). Ce fichier PHP me renvoit un document XML (rien d'anormal non plus), le content-type est bien envoyé, le XML est, il me semble, bien conforme... et tout cela fonctionne à merveille... sous Gecko ! En effet, sous IE, et Opéra (qui a tendance a suivre IE je trouve ), ça ne fonctionne pas. Au lieu d'accèder au contenu j'ai un coup un "objet recquis", un autre un "null"... Bref c'est la galère >_< Et je m'en veux un peu par moment d'avoir laché la méthode responseText Voici le code PHP : header("Content-Type: text/xml; charset=ISO-8859-1;"); echo '<?xml version="1.0" ?><document><error>1</error><message>Error : missing data</message></document>'; Maintenant, le traitement en JS : http.onreadystatechange = function() { if(http.readyState == 4) { if(http.status == 200) { if(http.responseXML) { window.alert( http.responseXML); var xmldoc = http.responseXML.documentElement; loadNode.innerHTML = xmldoc.getElementsByTagName("message")[0].firstChild.data; } } else { loadNode.innerHTML = "<span style='color:red;' ><strong>Erreur </strong>: <i>" + http.statusText + "</i>"; } } }; Info : loadNode est le noeud d'affichage HTML de la réponse ajax sur ma page. Mais on peut très bien remplacer "loadNode.innerHTML" par "window.alert", ça ne changera rien... Merci d'avance à toutes celles et tous ceux qui participeront EDIT : Problème résolu, je n'ai par contre pas réussi à trouver la source du problème, ça c'est juste mis à marcher d'un coup? Peut-être ai-je fait une modification sans le vouloir ?
  2. Ok merci, je vais tester ça edit : Bon, bah c'est ce que je craignais. En fait c'est pour afficher quelque-chose à la fin d'une vidéo, mais même si la vidéo n'est pas encore chargée, le script est déjà lancé, et du coup le texte s'affiche avant la fin...
  3. Merci bien, Seulement, avec cette fonction, le temps sera décompté ) partir du commencement du chargement de la page non ? Donc si la page met longtemps à s'afficher, ca fausse le décompte...
  4. Salut à toutes et à tous ! Alors voilà, j'aimerais qu'un texte s'affiche, au bout de 20sec. J'ai donc procédé comme suit : <script language="javascript" > <!-- heure = new Date(); heure = heure.getTime(); plus = 20000; nouvelle_heure = Number(heure+plus); while(heureuh = new Date()) { heureuh = heureuh.getTime(); if(heureuh == nouvelle_heure) { document.write("texteaafficher"); } } --> </script> Cependant, je remarque...que ça ne fonctionne pas ! J'en appelle donc à vous pour m'aiguiller sur ce qui ne marche pas dans mon code Merci d'avance à tous ceux qui participeront !!
  5. Salut à toi, (J'avais pas recu l'accusé de réponse... d'où ma réposne tardive.) Pour le bug des chiffres j'y ai déjà pensé, en fait je ne rajouterais pas le chiffre dans le titre mais dans le nom du fichier, c'est pour ne pas avoir deux entrées de la bdd portant sur le même fichier (car le fichier est créé à partir du titre) que je voulais mettre ceci en place. Donc dans la bdd les titres pareils resteraient pareil, et ainsi pour savoir combien y'a de fichiers, et donc le nombre du dernier, je compte les entrées de ce nom, et j'ajoute 1... Je sais pas si tu me suis :mrgreen: Je souhaitais juste savoir si quand il y aura plusieurs centaines d'entrées dans cette table le COUNT(*) avec un gros paramètre ne risquait pas de ralentir. Mais puisque tu dis que le '=' compare caractère par caractère et s'arrête donc parfois très vite, ca doit etre bon. Merci bien =)
  6. Troll

    COUNT, une solution rapide ?

    Salut à toutes et à tous Alors voilà, je voudrais vérifier, avant enregistrement si une ou plusieurs lignes d'une table contiennent la même chaine que $chaine dasn la colonne "titre", s'il y a plusieurs lignes le contenant, les compter, et rajouter à la fin de $chaine un "2" s'il y a déjà une ligne qui contient la donnée, un "3" s'il y en a déjà deux, un "4" s'il y en a déjà trois la contenant...etc. J'avais pensé faire ça : $var = mysql_query("SELECT COUNT (*) FROM table WHERE titre='$chaine' "); $var = mysql_result($var); if($var != 0) { $chiffre = $var+1; $chaine = $chaine.$chiffre; } // Si le count (*) ne renvoit pas zéro, on rajoute le nombre d'entrées + 1 à la fin de la chaine else { } // si le count (*) renvoit zéro alors tout va bien :) Seulement je me demandais si dans une table qui va sûrement contenir de très nombreuses lignes dans le futur, un COUNT(*) avec un argument qui peut être long (un titre...on va dire jusqu'à 40 caractères ?), cela ne ralentirait pas la base de donnée, et s'il n'y avait pas dans ce cas, une alternative plus rapide...? Merci d'avance à tous ceux qui participeront
  7. Ah..., beh peut-être que je me trompe alors M'enfin, ce n'est pas grave, j'y étais arrivé, c'est ce qui compte Merci de ton intérêt quand même
  8. Oui mais le php évite d'alourdir les requetes, bref de toute facon j'avais fini par trouver : function reformat_date($dat) { list( $year, $month, $day, $hour, $minute, $seconde ) = split( '[ /.:-]', $dat); $timestamp = mktime($hour, $minute, $seconde, $month, $day, $year); $dat = date("D, j M Y H:i:s \G\M\T", $timestamp); return $dat;
  9. Bonjour à toutes et à tous, Voilà, les dates sotckées dans ma base mysql sont au format AAAA-MM-JJ HH:II:SS, et j'aimerais pouvoir en obtenir des dates au format RFC 822, c'est à dire l'équivalent d'une fonction date("D, j M Y H:i:s \G\M\T"); ( ex : Tue, 8 May 2007 22:25:43 GMT ). J'ai bien trouvé des fonctions pour modifier la date, mais après on se retrouve uniquement avec des chiffres, et le jour et le mois doivent être en anglais...help :-/ Merci d'avance à tous ceux qui répondront
  10. Le code n'avait pas changé... Mais en fait j'ai trouvé d'où venait le bug, en effet array_shift retourne le contenu du premier élément du tableau, en plus de le raccourcir, donc en fait à la fin de la première boucle, $farray n'était plus un tableau. D'autres bugs sont venus s'ajouter ensuite mais j'ai résolu ça. Je vous donne le code fini, avec des notes pour ceux qui liront : <? //On récupère le fichier sous forme de tableau $farray = file("rss/news.xml"); // On supprime les 6 premières lignes for($i = 1; $i <=6; $i++) { $useless = array_shift($farray); } // On défini un contenu à ajouter $content_add = "<item> <title> Est-ce au bonne endroit ?</title> <description> Bon bah premier test hein...</description> </item>\n"; // On définit le contenu des 6 premières lignes que l'on a supprimé $six_first = "<?xml version=\"1.0\" encoding=\"utf-8\"?> <rss version=\"2.0\"> <channel> <title>PcInfo-Web</title> <link>http://www.pcinfo-web.com/</link> <description>Communauté et entraide informatique, news informatique et multimédia, tutoriaux...</description>\n"; // ON additionne sixpremiereslignes+contenu à ajouter+contenu après les 6 premieres lignes $content = $six_first.$content_add.implode($farray); //On écrase le ficheir avec le nouveau contenu $fh = fopen("rss/news.xml", "w+"); fwrite($fh, $content); fclose($fh); echo 'Effectué'; ?> Voilà, j'espère que ça servira à quelqu'un Ah aussi en passant : file() inclut déjà le retour à la ligne, donc si dans implode() on définit un retour comme séparateur des éléments du tableau, ca fait deux lignes Et aussi : quand on fait un retour à la ligne entre guillemets pour le contenu du variable, php le prends en compte, pas besoin de mettre "\n" =) Voili voilou =) Merci de t'être penché sur mon problème captain torche(pour ne pas dire flamme c'est ça ? =P ) A bientot peut-être =)
  11. Plus personne n'a d'idée ? En regardant le code source de la page en fait je me rends compte que l'array contient bien ce qu'il faut, les guillemets ne contiennent rien car les balises font disparaitre le texte, le code source donne, lui : array(8) { [0]=> string(40) "<?xml version="1.0" encoding="utf-8"?> " [1]=> string(21) "<rss version="2.0"> " [2]=> string(11) "<channel> " [3]=> string(27) "<title>PcInfo-Web</title> " [4]=> string(41) "<link>http://www.pcinfo-web.com/</link> " [5]=> string(125) "<description>Communauté et entraide informatique, news informatique et multimédia, tutoriaux...</description> " [6]=> string(12) "</channel> " [7]=> string(6) "</rss>" } Donc l'array est bien un array, il contien bien ce qu'il faut...pourquoi ce warning ?!
  12. J'avais déjà essayé avec print_r, qui ne trouvait rien dans les 8 premières clés, et qui trouvait le tiers du texte du fichier... Voilà avec var_dump : array(8) { [0]=> string(40) " " [1]=> string(21) " " [2]=> string(11) " " [3]=> string(27) " " [4]=> string(41) &quot;http://www.pcinfo-web.com/ " [5]=> string(125) "Communauté et entraide informatique, news informatique et multimédia, tutoriaux... " [6]=> string(12) " " [7]=> string(6) "" } Je dois avouer que je n'arrive pas à piger le problème là :-/ (à noter : les chiffres entre parenthèses dans string(xx) changent selon où le fichier à ouvrir est situé j'ai remarqué... ) Pour info, voilà le contenu du fichier : <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>PcInfo-Web</title> <link>http://www.pcinfo-web.com/</link> <description>Communauté et entraide informatique, news informatique et multimédia, tutoriaux...</description> </channel> </rss>
  13. Hum...j'ai un joli : "Warning: array_shift() [function.array-shift]: The argument should be an array in *****.php on line 5" La ligne 5 c'est la ligne $farray = file('news.xml'); Qu'est-ce qui ne va pas là ? O_o edit : J'ai aussi essayé comme ca : $f = fopen('news.xml', "r"); while(!feof($f)) { $farray[] = fgets($f); } fclose($f); A la place de file(), mais rien n'y change, on dirait qu'il ne reconnait pas que le fichier est sur plusieurs lignes... :-/
  14. Ok pour la boucle, par contre je ne sais pas ce que c'est que le "retour chariot", je me demandais justement ce qu'il fallait mettre pour le retour à la ligne... =) \f ? \n ? \t ? Merci bien =)
  15. Hum... donc ça ? : $farray = file('fichier.xml'); for($i = 0; $i <=6; $i++) { $farray = array_shift($farray); } $content_add = 'contenu a ajouter'; $content = 'contenudessixpremièreslignes'.$content_add.implode("", $farray); $fh = fopen('fichier.xml', "w"); fwrite($fh, $content); C'est bien ça ?
×
×
  • Créer...