IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Temps de chargement et mail()


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut Temps de chargement et mail()
    Bonjour,

    Sur le forum de mon site (je suis à l'origine du code source du forum), je propose aux membres de s'abonner aux discussions existantes.

    Les membres abonnés reçoivent donc un e-mail à chaque nouvelle réponse postée dans le sujet en question. En termes techniques, lorsqu'un membre ajoute une réponse, je vérifie si des membres sont abonnés à cette discussion ,et si oui, je fais un while dans lequel j'envoie un mail grâce à la fonction mail() de php.

    Les e-mails sont reçus correctement : là n'est pas le problème. Mon souci est qu'il suffit qu'une seule personne soit abonnée à la discussion (donc qu'un seul e-mail soit envoyé lors de l'ajout d'une réponse), que ça rame considérablement. C'est-à-dire que l'ajout d'une nouvelle réponse dure à peu près 7-8 secondes lorsque quelqu'un est abonné à cette discussion. (Et je précise que cette éternité n'est pas quand il n'y a pas d'e-mail à envoyer)

    J'ai un très bon hébergement, donc ça ne vient pas de là.

    J'aimerais savoir si mon problème est fréquent, et quels sont les moyens d'y remédier

    Merci d'avance.

    Cordialement,
    Guillaume

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour tu dois avoir un problème dans ton while.
    Tu peux mettre un bout de code ?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut
    Voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //On envoie le mail aux abonnés
    $sql_mail_envoi_notif_search = "SELECT id_membre FROM v2_notification_forum WHERE id_membre != '".addslashes($_SESSION['id'])."' AND id_sujet = '".addslashes($id_topic_get)."'";
    $req_mail_envoi_notif_search = mysql_query($sql_mail_envoi_notif_search);
    $total_mail_envoi_notif_search = mysql_num_rows($req_mail_envoi_notif_search);
    if ($total_mail_envoi_notif_search > 0){
     
     
     while ($row_mail_envoi_notif_search = mysql_fetch_array($req_mail_envoi_notif_search)){
     $id_membre_trouve_notif = $row_mail_envoi_notif_search['id_membre'];
     
     $sql_recherche_du_mail_du_membre = "SELECT email, pseudo, code_desabo FROM v2_membres WHERE id = '".addslashes($id_membre_trouve_notif)."' LIMIT 1";
     $req_recherche_du_mail_du_membre = mysql_query($sql_recherche_du_mail_du_membre);
     while ($row_recherche_du_mail_du_membre = mysql_fetch_array($req_recherche_du_mail_du_membre)){
     $mail_du_membre_not = $row_recherche_du_mail_du_membre['email'];
     $code_abo_du_membre_not = $row_recherche_du_mail_du_membre['code_desabo'];
     $pseudo_du_membre_not = $row_recherche_du_mail_du_membre['pseudo'];
     }
     
     
    $adresse=$mail_du_membre_not;
    $sujet="Titre du mail";
    $corps = "Bonjour,\n\nVous recevez [...]";
    $entete="content-type:text/plain;charset=iso-8859-1\nFrom: \"Entraide Scolaire\" <info@XXX.com>";
    mail ($adresse,$sujet,$corps,$entete);
     }
    }

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    le code me semble correct.

    J'aurais mis la dernière partie dans la dernière boucle while pourqu'il ne s'execute que quand il y a effectivement un email, un pseudo et un code desabo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    //On envoie le mail aux abonnés
    $sql_mail_envoi_notif_search = "SELECT id_membre FROM v2_notification_forum WHERE id_membre != '".addslashes($_SESSION['id'])."' AND id_sujet = '".addslashes($id_topic_get)."'";
    $req_mail_envoi_notif_search = mysql_query($sql_mail_envoi_notif_search);
    $total_mail_envoi_notif_search = mysql_num_rows($req_mail_envoi_notif_search);
    if ($total_mail_envoi_notif_search > 0){
     
     
    while ($row_mail_envoi_notif_search = mysql_fetch_array($req_mail_envoi_notif_search)){
    $id_membre_trouve_notif = $row_mail_envoi_notif_search['id_membre'];
     
    $sql_recherche_du_mail_du_membre = "SELECT email, pseudo, code_desabo FROM v2_membres WHERE id = '".addslashes($id_membre_trouve_notif)."' LIMIT 1";
    $req_recherche_du_mail_du_membre = mysql_query($sql_recherche_du_mail_du_membre);
     
    while ($row_recherche_du_mail_du_membre = mysql_fetch_array($req_recherche_du_mail_du_membre)){
    $mail_du_membre_not = $row_recherche_du_mail_du_membre['email'];
    $code_abo_du_membre_not = $row_recherche_du_mail_du_membre['code_desabo'];
    $pseudo_du_membre_not = $row_recherche_du_mail_du_membre['pseudo'];
     
    $adresse=$mail_du_membre_not;
    $sujet="Titre du mail";
    $corps = "Bonjour,\n\nVous recevez [...]";
    $entete="content-type:text/plain;charset=iso-8859-1\nFrom: \"Entraide Scolaire\" <info@XXX.com>";
    mail ($adresse,$sujet,$corps,$entete);
    }
     
    }
    }

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut
    Merci mais ça ne changera rien : cette requête est limitée à un résultat, et il y a toujours un email, un pseudo et un code désabo pour cette requête. J'aurais même pu enlever le while finalement ;-)

    D'autres idées ?

    Ce que j'aimerais surtout savoir, c'est si l'envoi de mails en php dure longtemps en général...

    Et s'il existe d'autres possibilités que la fonction mail() pour l'envoi de mails en php...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut
    Bonjour, j'ai deja utilisé la fonction mail() et c'etait très rapide, quasi instantané, mais sur un intranet.

Discussions similaires

  1. [MFC][ADO][ACCESS] temps de chargement très très long
    Par julien.nasser dans le forum Access
    Réponses: 2
    Dernier message: 12/05/2006, 15h34
  2. [AJAX] temps de chargement
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/03/2006, 23h02
  3. [Javascript] temps de chargement long
    Par rdams dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2006, 16h56
  4. Temps de chargement des applications .NET
    Par kamal101 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 17/11/2005, 09h11
  5. temps de chargement de la page en bas...
    Par kevinf dans le forum Général JavaScript
    Réponses: 33
    Dernier message: 19/10/2005, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo