Page 1 sur 1

probleme d'envoi d'email ...

Posté : 22 oct. 2006, 11:18
par fabien_14
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

Posté : 22 oct. 2006, 11:32
par Cyrano
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 !";
}
?>

Posté : 22 oct. 2006, 11:46
par fabien_14
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 !

Posté : 22 oct. 2006, 11:51
par Cyrano
"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.

Posté : 22 oct. 2006, 12:04
par fabien_14
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)

Posté : 22 oct. 2006, 14:14
par fabien_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 ."\">"; } ?>

Posté : 22 oct. 2006, 19:35
par fabien_14
un petit up

Posté : 22 oct. 2006, 20:38
par Cyrano
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.

Posté : 22 oct. 2006, 21:12
par fabien_14
oupss Ok :oops:

Posté : 23 oct. 2006, 07:22
par Cyrano
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