GENERER UN VOLUME IMPORTANT DE DONNEES SANS SE HEURTER AU TIMEOUT PHP

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 5 oct. 2006 à 14:41
leonelo4 Messages postés 1 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 14 avril 2011 - 14 avril 2011 à 21:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39811-generer-un-volume-important-de-donnees-sans-se-heurter-au-timeout-php

leonelo4 Messages postés 1 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 14 avril 2011
14 avril 2011 à 21:32
salut mallam .stp j aimerais utiliser une base de donnes pr envoyer des mails.ta methode utilise de fontions distinctes
pour l'envoi des mails et une recherche sur bd je ne sait pas comment faire pour qu'il fonctionnent ensemble(l envoi de mail et et la recheche sur la bd) il ya un exemple qui montre cmt utiliser deux methodes mais apparement ces methodes fonctionnent séparement. or dans mon cas j aimerais qu'il puissent communiquer

merci d'avance
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
16 oct. 2006 à 13:42
Plutot que de virer <?xml ...> tu le met dans un echo

echo '<?xml version="1.0" encoding="ISO-8859-1"?>';

@ tchaOo°
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 oct. 2006 à 13:31
Tu vires la ligne <?xml...> des pages où il y en a une.

Il existe des tas de tutos pour xmlhttp, si tu tapes ça dans google, tu vas en trouver tout un tas :-)
Mastronic Messages postés 94 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 juin 2012
16 oct. 2006 à 13:24
script sympas.. j'ai deja ue le probleme de Time-out.. et donc j'ai voulu testé le resultat du script sur FREE.FR.

syntax error, unexpected T_STRING in
.../buffer.php on line 5

certainement à cause de short_open_tag = On ( Merci Guill76)
mais nous ne pouvons modifier le parametre, donc que faire?


Second question: j'ai bien envie de comprendre ce script, existe t'il un site pour comprendre les fonctionalité de XMPLHTTP (AJAX)

D'avance Merci.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 oct. 2006 à 08:08
FhX => heu...oups. Lol.

Guill76 => heu non, désolé, pourquoi...? J'ai cette idée depuis près de 2 ans, mais je n'avais jamais essayé. Et là, j'ai une nécessité, qui m'a poussé à essayer.
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 3 juin 2016
5 oct. 2006 à 19:27
Au fait ce serait pas mon script de redimenssionnement d'image qui t'aurait donné cette idée??
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 3 juin 2016
5 oct. 2006 à 19:20
Oups j'ai rien dit:
short_open_tag = On
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 3 juin 2016
5 oct. 2006 à 19:15
Salut étant curieux du résultat, j'ai exécuté ton script :
Parse error: parse error, unexpected T_STRING in D:\Apache Group\Apache2\www\fourretout\buffer.php on line 4
j'ai l'impression qu'il ya 1 interpretation php de la ligne <?xml ?> et pourtant t'as bien spécifié au début les balises <?php ?> comprends pas.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
5 oct. 2006 à 19:01
Bon, ca marche et chui toujours content quand ca marche.

Jvais être le seul boulet à critiquer mais :
"# if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
# document.getElementById ('msg').firstChild.data = 'OK';
# }
# if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {"

2 fois le même if() ? :p

M'enfin voila ;)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2006 à 17:26
Lol, dans ce cas, quel intérêt d'essayer de contourner le problème...?
Tu vois bien que cette fonction, je l'ai mise dans mon script (set_time_limit()).
On peut le modifier SI le serveur l'autorise, et/ou si on a la main sur le serveur et le php.ini.
Mais là ce qui m'intéresse, c'est : si on ne le peut pas, ou si on ne le veut pas. Et dans mon cas perso à moi : je ne le VEUX pas.
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
5 oct. 2006 à 17:04
on peut pas le modifier le timeout ? genre un set_time_limit (0).

http://fr3.php.net/manual/fr/function.set-time-limit.php
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
5 oct. 2006 à 15:51
Non la bufferisation n'a rien a voir... le seul truc que tu obtiendra c'est d'afficher ligne par ligne mais tu ne passera pas outre le timeout... .. .

@ tchaOo°
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2006 à 15:35
Non, de cette manière, ça ne passera pas outre le timeout PHP. Mets un set_time_limit (5); devant ton code, et lance le (en corrigeant le $i manquant ;-) ), et tu verras.
cec dit, y a de l'idée oui, mais je ne suis pas certain qu'on puisse arriver à un truc concluant avec la bufferisation.
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
5 oct. 2006 à 15:28
Autant pour moi il manque un $(for ($i=0; $i<1000000; $i++))
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
5 oct. 2006 à 15:26
J'aurais plutot pense jsutement à virer la bufferisation... avec quelques flush de temps a autres pour envoyer morceau par morceau le code html au navigateur... ex :

<?php

for ($i=0; i<1000000; $i++) {
echo "Ligne $i
";
flush ();
}

?>

ce qui a pour effet d'envoyer le contenu html au navigateur ligne / ligne
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2006 à 14:43
Ouais l'avantage ici c'est d'avoir un affichage "asynchrone". Ca affiche au fur et à mesure que ça lit.
Bon...je ne suis pas pleinement satisfait. A la base, je voulais faire ça pour lire un flux xml bien lourd présent dans un fichier. Mais ce système ne le permettra jamais. Par contre, ça fonctionne pour des tableaux, des requêtes sql, et certains types de fichiers (je ferai des exemples que j'ajouterai au fur et à mesure).
J'étais parti sur la bufferisation (ob_start()...), mais bon...pas efficace lol.
je suis preneur de toutes autres idées!
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
5 oct. 2006 à 14:41
Ouep pas con... moi j'avais pensé il fut un temps à un système de header('Location pour un traitement par étape (genre mailling list avec beaucoups d'abonnés)... après tout dépend du type de traitement avec le header on ne peut pas afficher comme fait ta technique... .. .

@ tchaOo°
Rejoignez-nous