probleme d'envoi d'email ...

Eléphant du PHP | 183 Messages

22 oct. 2006, 11:18

Bonjour , J'ai mon code ci dessous qui m'envoi mes email a mes membre ... cependant sa n'envoi pas les messsage

je voudrai que sa envoi par tranche 0 a 100 etc ... 101 a 200 etc ...

ceci marche avec LIMIT mais je ne recois pas les mails ....

Code : Tout sélectionner

$requete = "SELECT * FROM newsletter"; $page = isset($_GET['page']) ? $_GET['page'] : ''; $ret = mysql_query($requete); $limit=1; if($debut==""){$debut=0;} $debut=$page*$limit; $nb_total=mysql_num_rows($ret); $limite=mysql_query("$requete limit $debut,$limit"); $limit_str = "LIMIT ". $page * $limit .",$limit"; $result = mysql_query(" SELECT * FROM newsletter DESC $limit_str"); echo "&nbsp;<a href=\"?o=ml&act=envoi&page=$suivant\"> Les $limit suivant >></a>"; echo "<br><br>"; if($debut+$limit<$nb_total) { $suivant=$page+1; echo "<form method=\"POST\" action=\"?o=ml&act=envoi&page=$suivant\">"; } ?> <b>Votre message en HTML ou en texte brut :</b> <?php $messag = $_POST['messag']; ?> <textarea rows="20" name="messag" cols="50"><?php echo $messag; ?></textarea><br> <br> <input type="submit" name="submitlettre" value="Envoyer la NewsLetter"> </form> <? if ($_POST['submitlettre'] == TRUE) { $messag = $_POST['messag']; while ($c=@mysql_fetch_array($result)) { ICI MON CODE DE LA NEWLETTERS mail("$c[email]", $objet, "$message", $headers); } echo "NewsLetter envoyée !"; } ?>
Si qlq peu me dire d'ou sa viens je lusi serais bien reconnaisant :)

Merci
_________
Fabien

Mammouth du PHP | 19672 Messages

22 oct. 2006, 11:32

En reprenant un peu ton code, il y a quelques curiosités : le voici remanié un tout petit peu avec en plus une question dans les commentaires du code :
<?php
//...
$requete = "SELECT * FROM newsletter";

$page = isset($_GET['page']) ? $_GET['page'] : '';

$ret = mysql_query($requete);
$limit = 1;
if($debut == ""){$debut=0;}
$debut = $page * $limit;
$nb_total = mysql_num_rows($ret);
$sql1 = $requete ." limit ". $debut .",". $limit;
$limite = mysql_query($sql1);

$limit_str = "LIMIT ". $debut .",". $limit;
$sql2 = "SELECT * ".
        "FROM newsletter ".
        "DESC ".                      // <<=== C'est quoi ce "DESC" tout seul ??
        " ". $limit_str;
$result = mysql_query($sql2);

echo "&nbsp;<a href=\"?o=ml&act=envoi&page=". $suivant ."\"> Les ". $limit ." suivants >></a>";
echo "<br><br>";

if($debut+$limit<$nb_total)
{
    $suivant = $page + 1;
    echo "<form method=\"POST\" action=\"?o=ml&act=envoi&page=". $suivant ."\">";
}
?>
  <b>Votre message en HTML ou en texte brut :</b>
<?php
$messag = $_POST['messag'];
?>
  <textarea rows="20" name="messag" cols="50"><?php echo $messag; ?></textarea><br>
  <br>
  <input type="submit" name="submitlettre" value="Envoyer la NewsLetter">
</form>
<?php
if ($_POST['submitlettre'] == TRUE)
{
    $messag = $_POST['messag'];

    while (false != ($c = mysql_fetch_array($result)))
    {
        //   ICI MON CODE DE LA NEWLETTERS
        mail($c['email'], $objet, $message, $headers);
    }
    echo "NewsLetter envoyée !";
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

22 oct. 2006, 11:46

Merci de ta reponse :)

Alors le DESC tous seul je sais pas ... normalement sa doit etre

Code : Tout sélectionner

DESC $limit_str");
Est-ce en copinat collant je ne sais pas c'est etrange que ceci c'est enlever !
_________
Fabien

Mammouth du PHP | 19672 Messages

22 oct. 2006, 11:51

"DESC" est utilisé dans une clause ORDER BY : mais cette clause n'existe pas dans ta requête, donc "DESC" n'a rien à faire là du tout.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

22 oct. 2006, 12:04

Effectivement ceci navai rien a faire ici

Cependant j'ai un autre petit probleme

avec ceci

Code : Tout sélectionner

if($debut+$limit<$nb_total) { $suivant = $page + 1; echo "<form method=\"POST\" action=\"?o=ml&act=envoi&page=". $suivant ."\">"; } ?>
Il m'envoi bien les mail mails il m'oubli la premiere fourné ...

si mais tranche sont de 0 a 50 et 51 a 100 il n'envoi pas les 0 a 50 quand je clique sur "envoyer le message" mais il m'envois les 51 a 100 (page=1)
_________
Fabien

Eléphant du PHP | 183 Messages

22 oct. 2006, 14:14

j'ai essayer ceci mais sa marche pas :s

Code : Tout sélectionner

if ($_GET[page] == FALSE) { echo "<form method=\"POST\" action=\"?o=ml&act=envoi&page=0\">"; } if ($_GET[page] == TRUE) { $suivant = $_GET[page] + 1; echo "<form method=\"POST\" action=\"?o=ml&act=envoi&page=". $suivant ."\">"; } ?>
_________
Fabien

Eléphant du PHP | 183 Messages

22 oct. 2006, 19:35

un petit up
_________
Fabien

Mammouth du PHP | 19672 Messages

22 oct. 2006, 20:38

fabien_14, les "up" sont interdits. On est dimanche et tout le monde n'est pas scotché sur le forum à attendre tes questions. Donc relax.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

22 oct. 2006, 21:12

oupss Ok :oops:
_________
Fabien

Mammouth du PHP | 19672 Messages

23 oct. 2006, 07:22

J'ai l'impression que tu mélanges deux problèmes : d'une part la nivagation pages par pages et d'autre part l'envoi de la newsletter. Comme dans ton attribut action l'url pointe avec en paramètre la page suivante, ce qui est sur la page en cours est ignoré et l'envoi est fait selon cette url, à partir de la série suivante. :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: