osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Envoi newsletter via Admin, ne marche pas
Fredox
posté 20 Sep 2006, 12:26
Message #1


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 22
Inscrit : 16-September 04
Membre no 3279



Bonjour,

j'ai le pb suivant qd j'essaie d'envoyer une newsletter via l'admin :

-------------------------------------------------------------------

2013 - Lost connection to MySQL server during query

update newsletters set date_sent = now(), status = '1' where newsletters_id = '2'

[TEP STOP]

2006 - MySQL server has gone away

select count(*) as total from sessions where sesskey = '10ce778ccf002d81f7d9085452d0df6d'

[TEP STOP]


Gestionnaire de bulletin d'informations

Merci de patienter .. envois en cours ..

Merci de ne pas interrompre ce traitement !

-------------------------------------------------------------------

=> je reste tjrs sur cette page avec cette belle image de valise qui s'ouvre dry.gif

merci d'avance pour votre aide


--------------------
Fredox

version : 2.2-MS2 Delaballe
hébergeur : ovh
Go to the top of the page
 
fissiaux
posté 20 Sep 2006, 21:06
Message #2


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Les destinataires sont ils nombreux ?
Go to the top of the page
 
Gnidhal
posté 20 Sep 2006, 22:22
Message #3


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9130
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



CITATION
2006 - MySQL server has gone away

Moi j'aime bien quand les messages d'erreur sont limite parlé : "le serveur MySQL s'est barré !" laugh.gif

Bon cela mis à part, si le serveur s'est barré, c'est qu'il a peut-être jugé que le boulot était trop dur... (mal payé ? non je rigole encore...)
La question de Fissiaux est donc pertinente! wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
fissiaux
posté 21 Sep 2006, 18:46
Message #4


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669




CITATION
La question de Fissiaux est donc pertinente!


Ouf !!!! J'étais inquiet.... biggrin.gif
Go to the top of the page
 
osgadou
posté 22 Sep 2006, 08:41
Message #5


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 470
Inscrit : 25-November 04
Membre no 3912



salut,

même erreur sur 503 destinataires.... serveur OVH...

Des idées ??? apparement il faudrait changer une variable de mysql, mais je ne crois pas que ce soit faisable sous ovh mut.

Note : seuls les premiers destinataires l'aurait recu.

Une idée ? voici le script :

CODE
<?php
/*
  $Id: newsletter.php,v 1.1 2002/03/08 18:38:18 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 osCommerce

  Released under the GNU General Public License
*/

// ################# Contribution Newsletter v050 ##############
  class newsletter_subscribers {
    var $show_choose_audience, $newsletters_id, $module_subscribers, $title, $header, $contenta, $unsubscribea, $unsubscribeb;

    function newsletter_subscribers($newsletters_id, $module_subscribers, $title, $header, $contenta, $unsubscribea, $unsubscribeb) {
      $this->show_choose_audience = false;
      $this->newsletters_id = $newsletters_id;
      $this->module_subscribers = $module_subscribers;
      $this->title = $title;
      $this->header = $header;
      $this->contenta = $contenta;
      $this->unsubscribea = $unsubscribea;
      $this->unsubscribeb = $unsubscribeb;                          
    }
// ################# END - Contribution Newsletter v050 ##############

    function choose_audience() {
      return false;
    }

    function confirm() {
      global $HTTP_GET_VARS;

      $mail_query = tep_db_query("select count(*) as count from " . TABLE_SUBSCRIBERS . " where customers_newsletter = '1' and subscribers_blacklist = '0' ");
      $mail = tep_db_fetch_array($mail_query);

// ################# Contribution Newsletter v050 ##############
      $confirm_string = '<table border="0" cellspacing="0" cellpadding="2">' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><font color="#ff0000"><b>' . tep_draw_separator('pixel_trans.gif', '20', '1') .  TEXT_TITRE_INFO . '</b></font></td>' . "\n" .
                        '  </tr>' . "\n" .                                                
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main">' . sprintf(TEXT_COUNT_CUSTOMERS, $mail['count']) . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main">' . TEXT_BULLETIN_NUMB . "&nbsp;" . '<font color="#0000ff">' . $this->newsletters_id . '</font></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main">' . TEXT_MODULE . "&nbsp;" . '<font color="#0000ff">' . $this->module_subscribers . '</font></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main">' . TEXT_TITRE_MAIL . "&nbsp;" . '<font color="#0000ff">' . $this->title . '</font></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><font color="#ff0000"><b>' . tep_draw_separator('pixel_trans.gif', '20', '1') . TEXT_TITRE_VIEW . '</b></font></td>' . "\n" .
                        '  </tr>' . "\n" .                                                
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><tt>' . $this->header . '</tt></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><tt>' . $this->contenta . '</tt></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><tt>' . $this->unsubscribea . '</tt></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main"><tt>' . $this->unsubscribeb . '</tt></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .                                                
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td align="right"><a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID'] . '&action=confirm_send') . '">' . tep_image_button('button_send.gif', IMAGE_SEND) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a></td>' . "\n" .
                        '  </tr>' . "\n" .
                        '</table>';
// ################# END - Contribution Newsletter v050 ##############

      return $confirm_string;
    }
// ################# Contribution Newsletter v050 ##############
    function send($newsletter_id) {
      $mail_query = tep_db_query("select subscribers_firstname, subscribers_lastname, subscribers_email_address from " . TABLE_SUBSCRIBERS . " where customers_newsletter = '1' and subscribers_blacklist = '0' ");
      while ($mail = tep_db_fetch_array($mail_query)) {
      $mimemessage = new email(array('X-Mailer: osCommerce bulk mailer'));
      // Préparation de l'envoie du mail en HTML
      $mimemessage->add_html_newsletter($this->header . "\n\n" . $this->contenta  /*. "\n\n" . $this->unsubscribea . " " . '<a href="' . HTTP_SERVER . DIR_WS_CATALOG . FILENAME_NEWSLETTERS_UNSUBSCRIBE . "?action=view&email=" . $mail['subscribers_email_address']  . '">'  . HTTP_SERVER . DIR_WS_CATALOG . FILENAME_NEWSLETTERS_UNSUBSCRIBE . "?action=view&email=" . $mail['subscribers_email_address']  . '</a>' . "\n\n" . $this->unsubscribeb*/);

      $mimemessage->build_message();

// ################# END - Contribution Newsletter v050 ##############

      $mimemessage->send('', $mail['subscribers_email_address'], '', EMAIL_FROM, $this->title);
      }

      $newsletter_id = tep_db_prepare_input($newsletter_id);
      tep_db_query("update " . TABLE_NEWSLETTERS . " set date_sent = now(), status = '1' where newsletters_id = '" . tep_db_input($newsletter_id) . "'");
    }
  }
?>


Ce message a été modifié par osgadou - 22 Sep 2006, 08:43.


--------------------
MS2FR
Go to the top of the page
 
fissiaux
posté 22 Sep 2006, 19:09
Message #6


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Il y a quelque temps, certains parlaient d'une contribution nommée email_admin_cron et elle semblait pouvoir traiter des flux importants
Go to the top of the page
 
simsone
posté 10 Nov 2006, 11:02
Message #7


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 69
Inscrit : 9-June 05
Lieu : Monaco
Membre no 6155



Bonjour à tous,

moi aussi j'utilise la Contribution Newsletter v050 et j'envoie des newsletters à 750 voir 800 inscripts.

C'est vrais que ell'est un peus lente mais tout part sans problèmes.

Seulement, parfois, je n'arrive pas à la page de confirmation "TERMINE" car je pense que la session admin se termine avant. Mais quand je vérifie si tous les inscripts ont rèçu, ça a l'air ok.

Ton problème n'est peut ètre que une déconnaiction de ton serveur (pour de raisons de sécurité) quand il y a une session trop longue ?


--------------------
bien à vous,
SIMSONE
Osc MS2.2.2 Fr 2005 powered.
"Il ne faut pas faire aux autres ce qu'on aimerait pas qu'ils nous fassent"
Go to the top of the page
 
chti_poupon
posté 29 Mar 2010, 23:03
Message #8


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2202
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonsoir !
Ceci est une exhumation !
Il m'arrive la même chose (Mysql est parti !)
Cela arrive à la ligne :
Code
      tep_db_query("update " . TABLE_NEWSLETTERS . " set date_sent = now(), status = '1' where newsletters_id = '" . tep_db_input($newsletter_id) . "'");

fin de la fonction send de la classe newsletters (dans module (?!) de l'admin)
Bon, c'est après la boucle while d'envoi: tous les envois sont partis ! (j'ai 2 "pièges" dans ma liste) Mais je dois mettre now() et 1 à la main dans la base: çà n'est pas très propre !

Bref ! qui répondra à la question "pourquoi Mysql se casse ? "
Qui l'a traité de pôvre c.. ?
Ou bien dit-il "Avec ce que vous me donnez à faire, faut qu'j'y aille !" ?
Ou a-t-on omis de lui dire: Finis ton taf avant de te casser ? et comment?

Bref, la question est pendante, le clic sur envoi se termine mal, çà laisse un doute, on se croirait sous windows 3.1...

Une idée ???

Chti poupon

PS : il n'y a que quelques dizaines de messages, texte (2ko)

Ce message a été modifié par chti_poupon - 29 Mar 2010, 23:07.
Go to the top of the page
 
Gnidhal
posté 30 Mar 2010, 08:26
Message #9


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9130
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Oui le message du serveur mysql est laconique smile.gif
Genre claque la porte en partant.
Bon, aucun rapport direct avec la newsletter, mais pour info j'ai rencontré ce message plusieurs fois alors que le serveur sql était vraiment à la traîne (chez OVH)
Le site fonctionnait bien et un jour pendant quelques heures, le site ramait grave et en bas de page on trouvait ce type de message : MySQL server has gone away
Tout est revenu à la normale au bout de quelques heures. En fait l'hébergeur devait des modifs sur le serveur SQL ou celui-ci a crashé et on s'est retrouvé sur la roue de secours pendant la réparation du disque...
Ton problème ne serait pas de ce type ? (un problème réseau en fait)
Car envoyer une dizaine de requêtes (boucle while) puis une requête de mise à jour, c'est pas non plus un travail de romain...


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
chti_poupon
posté 30 Mar 2010, 20:53
Message #10


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2202
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonsoir !
Merci de ta réponse !
Mais n'y a-t-il pas moyen de temporiser ?
Ce serait quand même plus intéressant ! cool.gif
Salutations !
Chti poupon

PS N'as tu pas peur qu'un romain se plaigne en haut lieu ? mrgreen.gif
Go to the top of the page
 
Gnidhal
posté 30 Mar 2010, 21:08
Message #11


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9130
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Si, il est possible de temporiser. D'ailleurs une contribution fait cela Ultimate Html Emails.
les mails sont envoyés par paquet et le script est relancé par js.
ça marche. Mais je ne sais pas si ça résoudra ton problème.
Il n'est pas absolument nécessaire d'installer la totalité de la contrib (même si elle est plutôt sympa dans le résultat) mais juste de comparer et modifier les modules admin/newsletter je pense...

Ha humour quand tu nous tiens! Non je ne pense pas que les romains viennent se plaindre vu que l'expression doit dater du début de l'ère chrétienne biggrin.gif
Ceux qui auraient voulu porter plainte ont été, empalés, crucifiés ou n'ont laissé que des crânes dans les ossuaires des catacombes romaines (ou un peu d'ADN, s'il on le retrouve, sur le sable des arènes...)



--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
chti_poupon
posté 9 Aug 2010, 21:36
Message #12


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2202
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonsoir ?
Je remonte ce sujet, car le problème subsiste en exploitation, mais pas en local. où tout se déroule "comme dans les livres".
J'ai creusé un peu et trouvé ceci dans la bible php:
Citation
<h3 class="title"> Notes</h3> Avertissement Notez que set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini.

Note: La fonction set_time_limit() et la directive de configuration max_execution_time n'affectent que le temps d'exécution du script lui-même. Tout temps passé en dehors du script, comme un appel système utilisant system(), des opérations sur les flux, les requêtes sur base de données, etc. n'est pas pris en compte lors du calcul de la durée maximale d'exécution du script. Ceci est faux sous Windows où le temps mesuré est le temps réel.


Ce qui explique la différence de comportement : en local, safe mode est à "off" et à "on" en distant
Donc en distant tep_set_time_limit() est inutile, car, si set_time_limit(0) met la limite à l'infini, il est inactif en safe mode (c'est d'ailleurs écrit dans le code !!)
Reste à mettre safe_mode à off en distant, sans nuire au reste !
Quelqu'un sait ??

Merci d'avance !
Chti poupon
Go to the top of the page
 
FoxP2
posté 9 Aug 2010, 23:29
Message #13


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1512
Inscrit : 3-June 09
Membre no 25501



Si tu es sur un hébergement mutualisé, tu peux aller te faire voir chez les grecs. tongue.gif
Et ne penses même pas à faire la modif SAFE_MODE par un fichier HTaccess. Résultat nul garanti.
Une seule réponse : soit tu découpes le script, soit les requêtes. Solution déjà indiquée par le Génie ci-dessus.
Si tu es sur un dédié, modification via le php.ini


--------------------


Go to the top of the page
 
chti_poupon
posté 10 Aug 2010, 08:10
Message #14


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2202
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour !
Bonjour de chez les grecs !
Merci de ta réponse, et j'ai bien noté de découper en paquets et de relancer par javascript grâce à Ultimate Html Emails comme dit par le stylite de la Bastille. Mais, enfant de la programmation linéaire (FORTRAN), le javascript ne m'est pas "dans les tripes": je pratique volontiers procrastination et détour.
Belle et bonne journée à toi !
Chti poupon
PS safe_mode obsolète depuis le 5.3: bientôt le voyage en Grèce ne sera plus nécessaire... mais il y aura d'autres problèmes...
PS' : Qui marquera [RESOLU] ?
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 19th June 2013 - 11:04
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)