Scoutnet vzw

We connect scouts!
Het is momenteel 02 Mei 2024 0:10

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 10 berichten ] 
Auteur Bericht
BerichtGeplaatst: 04 Sep 2006 11:07 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
ik heb een klein scriptje gemaakt die mensen laten herinneren wanneer iets bijna vervalt.

Nu wanneer ik dit laat runnen stuurt hij maar 1 mail de eerste in rij maar de rest niet.

Code:
$query = "SELECT COUNT(*) FROM leden WHERE actief='0' && vervaltijd='250'"; 
$numb = mysql_query($query) or die ("query subj mislukt"); 
while($result = mysql_fetch_array($numb)){ 
$i2 = $result[0];
}
$i = 0;

do {
$vervaltijd = date(z) + "3";
    $select = "SELECT * FROM leden WHERE actief='0' && vervaltijd='250' && reminder<>'test'";
$query = mysql_query($update)or die(mysql_error());
include ("mail.php");

$i++;

} while ( $i < $i2 );





Nu wanneer ik dit laat runnen stuurt hij maar 1 mail de rest van de lijst wilt hij niet mailen.

Heeft er iemand een idee?


Omhoog
 Profiel  
 
BerichtGeplaatst: 04 Sep 2006 11:27 
Offline
 
 

Geregistreerd: 27 Aug 2005 16:13
Berichten: 50
Woonplaats: Deurne
Code:
$query = "SELECT COUNT(*) FROM leden WHERE actief='0' && vervaltijd='250'"; 
$numb = mysql_query($query) or die ("query subj mislukt"); 
$i2 = mysql_result($numb, 0);
$i = 0;

// wat nu?
do {
$vervaltijd = date(z) + "3";
    $select = "SELECT * FROM leden WHERE actief='0' && vervaltijd='250' && reminder<>'test'";
$query = mysql_query($update)or die(mysql_error());
include ("mail.php");
$i++;
} while ( $i < $i2 );

Wat staat er in mail.php? Ik snap niet goed waarom je ineens met een do en met update... en $i afkomt? Volgens mij is dit niet heel het script.

Indien hij dat enkel naar de eerste doet, is er mss iets mis met de lus.

Verder raad ik aan om BCC of phpMailer te gebruiken.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 12:26 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
Dit is de code van de mail:
Code:

   $sent_to.="$list->email";
   $subject="HERINNERING !!!";
   $header="From: mail webmaster";
   $mail_body.="Beste $list->voornaam,\n\n";
   $mail_body.="de rest van de mail\n";
   mail($sent_to,$subject,$mail_body,$header);


Laatst gewijzigd door alpaca op 04 Sep 2006 12:42, in totaal 1 keer gewijzigd.

Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 12:37 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
een deel van mijn code word niet aanvaard door dit forum hij verwijderd het belangrijkste deel

tussen dit : $select = "SELECT * FROM leden WHERE actief='0' ...

En dit: $query = mysql_query($update)or die(mysql_error());

moest nog dit te komen staan:

$query = mysql_query($select)or die(mysql_error());
$list = mysql_fetch_object($query);
include ("vervallenmail.php");
$update = "UPDATE leden SET reminder='test' WHERE id ='$list->id'";


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 12:59 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
alpaca schreef:
een deel van mijn code word niet aanvaard door dit forum hij verwijderd het belangrijkste deel

Om dat te voorkomen, moet je het vakje "Schakel HTML uit in dit bericht" aanvinken wanneer je HTML- of PHP-code in een forumbericht post.

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 13:21 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
To schreef:
Ik begrijp niet goed waarom je het zo ingewikkeld maakt. Kan je het niet gewoon zo oplossen:

Code:
<?php

$select = "SELECT * FROM leden WHERE actief='0' && vervaltijd='250' && reminder<>'test'";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
$email = $list->email; // of zoiets: gegevens uit database halen
include ("mail.php"); // hier steek je best zo weinig mogelijk in:
// alleen dingen die van mail tot mail veranderen;
// andere zaken (stukken bericht die in alle mails
// hetzelfde zijn) zet je beter vóór deze lus
}

?>


To


Ik laat de volgende code runnen:

Code:
<?php
$select = "SELECT * FROM leden WHERE actief='0' && vervaltijd='250' && reminder<>'test'";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
 $email = $list->email; // of zoiets: gegevens uit database halen
  include ("vervallenmail.php");  // hier steek je best zo weinig mogelijk in:
                         // alleen dingen die van mail tot mail veranderen;
                         // andere zaken (stukken bericht die in alle mails
                         // hetzelfde zijn) zet je beter vóór deze lus
}

?>



code mail:
Code:
<?php
   $sent_to.="$email";
   $subject="HERINNERING !!!";
   $header="From: mail webmaster";
   $mail_body.="Beste $list->voornaam,\n\n";
   $mail_body.="U bent nog steeds niet definitief ingeschreven!\n";
   $mail_body.="Daarvoor moet u bevestigen met onderstaande link.\n";
   $mail_body.="De pagina zal vragen achter een gebruikersnaam en wachtwoord.\n";
   $mail_body.="Deze mag u zelf kiezen en invullen.\n";
   $mail_body.="Met deze login kan u daarna al u gegevens nakijken en andere nuttige informatie opzoeken.\n";
   $mail_body.="http://domain.be/bevestiging.php?actie=bevestigen&email=$list->email&code=$list->code\n";
    $mail_body.="Opgelet dit adres blijft maar 7 dag geldig!!!\n";
   mail($sent_to,$subject,$mail_body,$header);
?>


Wanneer er nu bijvoorbeeld 2 personen in de lijst zitten stuurt hij enkel maar een mail naar de eerst en de tweede niet.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 13:27 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 11 Sep 2002 23:00
Berichten: 137
Woonplaats: Gent
alpaca schreef:
Code:
$sent_to .= "$email";


Wanneer er nu bijvoorbeeld 2 personen in de lijst zitten stuurt hij enkel maar een mail naar de eerst en de tweede niet.


Heb 't niet getest, maar dit ziet er niet correct uit.

Stel dat rij bevat (mail@a.com, mail@b.com)

Bij eerste keer door lus:
$sent_to = 'mail@a.com'

Bij tweede keer door lus:
$sent_to = 'mail@a.commail@b.com';

Dus door die .= wordt het volgende email-adres er steeds aangeplakt waardoor je 'n ongeldig adres krijgt. Haal dat puntje eens weg?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 13:40 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
bmollet schreef:
alpaca schreef:
Code:
$sent_to .= "$email";


Wanneer er nu bijvoorbeeld 2 personen in de lijst zitten stuurt hij enkel maar een mail naar de eerst en de tweede niet.


Heb 't niet getest, maar dit ziet er niet correct uit.

Stel dat rij bevat (mail@a.com, mail@b.com)

Bij eerste keer door lus:
$sent_to = 'mail@a.com'

Bij tweede keer door lus:
$sent_to = 'mail@a.commail@b.com';

Dus door die .= wordt het volgende email-adres er steeds aangeplakt waardoor je 'n ongeldig adres krijgt. Haal dat puntje eens weg?


inderdaad dat is de oplossing

maar nu geeft hij ook alle gegevens van de ander personen weer in 1 mail
De aantal mails die nu binnen komen kloppen nu.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 14:13 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
alpaca schreef:
inderdaad dat is de oplossing

maar nu geeft hij ook alle gegevens van de ander personen weer in 1 mail

Hetzelfde geldt voor je mail_body die begint met
Code:
$mail_body.="Beste $list->voornaam,\n\n";

Bij de tweede lus wordt dit er dus nog eens achtergeplakt.

Zoals in mijn quote hierboven al staat: je haalt best alles uiteen om het script zo optimaal (lees: snel) mogelijk te laten uitvoeren. Concreet betektent dat:

Code:
<?php

$subject="HERINNERING !!!";
$header="From: webmaster@mijngroep.be";

$mail_body2 = "U bent nog steeds niet definitief ingeschreven!\n";
$mail_body2 .= "Daarvoor moet u bevestigen met onderstaande link.\n";
$mail_body2 .= "De pagina zal vragen achter een gebruikersnaam en wachtwoord.\n";
$mail_body2 .= "Deze mag u zelf kiezen en invullen.\n";
$mail_body2 .= "Met deze login kan u daarna al u gegevens nakijken en andere nuttige informatie opzoeken.\n";
$mail_body4 .=" Opgelet dit adres blijft maar 7 dag geldig!!!\n";

$select = "SELECT * FROM leden WHERE actief='0' && vervaltijd='250' && reminder<>'test'";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
  $sent_to = $list->email;
  $mail_body1 = "Beste $list->voornaam,\n\n";
  $mail_body3 = "http://www.mijngroep.be/bevestiging.php?actie=bevestigen&email=$list->email&code=$list->code\n";
  $mail_body = $mail_body1 . $mail_body2 . $mail_body3 . $mail_body4;
  mail($sent_to,$subject,$mail_body,$header);
}

?>


To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 04 Sep 2006 14:22 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 01 Jan 2004 0:00
Berichten: 38
ok bedankt

hij werkt :D


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 10 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 5 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
cron
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.