Avatar billede tlunde Nybegynder
26. september 2005 - 09:19 Der er 12 kommentarer og
1 løsning

Sende mail via PHP når en dato er overskredet?

Hejsa,
Jeg har oprettet nogle profiler, hvor jeg har en oprettelsesdato der er oprettet med time(), og så har en en dato der er en måned efter oprettelsesdatoen.

Jeg vil så gerne lave en funktion, der udsender en mail, når datoen er overskredet, hvordan går man nemmest det?
Avatar billede horsmark Nybegynder
26. september 2005 - 09:37 #1
# Check if user has allready recieved email before
$bHasUserRecievedEmail = false;

if( !$bHasUserRecievedEmail ){
    # UserCreateTime
    $iUserCreateTime = mktime(0,0,0,8,27,2005);
   
    # 30 days in time
    $i30Days = 60 * 60 * 24 * 30;
    $iCheckDate = $iUserCreateTime + $i30Days;
   
    if( ($iUserCreateTime + $i30Days) < time() ){
        print "Usercreatetime ". date("d M Y", $iUserCreateTime)."<br>".
                    "Sendmail AND set flag NOT to email user again in db";
    } else {
        print "don´t send mail yest";
    }
}
Avatar billede tlunde Nybegynder
26. september 2005 - 09:53 #2
Kan ik lige gennemskue hvad dette kode gør, eller hvordan jeg tilpasser det til mit site.
Når jeg opretter en ny profil, gemmer jeg time() under 'dato' og gemmer time()+60*60*24*30 under 'dato_slut'.

Hvordan bruger jeg de 2 oplysninger til at udsende en mail til brugeren, når dato_slut er overskredet?
Avatar billede horsmark Nybegynder
26. september 2005 - 11:05 #3
Jeg går ud fra at du via mysql har hentet følgende fra mysql

$iUserDateEnd = row['dato_slut'];
$sUserEmail  = row['bruger_email'];


if( $dato_slut > time() ){
mail($sUserEmail, "Overskrift: Reminder", "Du har modtaget en reminder.. blablabla");

}
Avatar billede horsmark Nybegynder
26. september 2005 - 11:05 #4
...hvis ovenstående ikke virker bliver du nødt til at poste det af din kode der ikke virker
Avatar billede tlunde Nybegynder
26. september 2005 - 13:09 #5
Prøver lige koden an...

Tjekker den selv koden undervejs, eller skal den "aktiveres" ved et klik eller andet? Det skal bare være en funktion der ligger der, og så først sker når $dato_slut > time() er opfyldt?

Kan jeg bruge koden på den måde?
Avatar billede horsmark Nybegynder
26. september 2005 - 13:31 #6
hmm du har 2 muligheder for at sætte funktionen igang.

1. Du bygger et "cron-job" dvs serveren er sat til at eksekvere en php side hverdag kl 8
2. Du tilføjer funktionen dér hvor brugere logger ind i deres profiler...
Avatar billede tlunde Nybegynder
26. september 2005 - 13:47 #7
Hmm...forstår stadig ik helt tror jeg.
Hvordan skal jeg få dette kode eksekveret når der er gået en måned? Det behøver ikke være når brugeren er logget ind, men kan godt være en generel funktion, der bare et sted bliver udført når der er gået en måned...

Kan godt følge ideen i at bygge funktionen op, kan bare ik lige se hvordan jeg skal få kørt funktionen, og hvor jeg kan ligge den...
Avatar billede horsmark Nybegynder
26. september 2005 - 14:53 #8
lig den på en side der jævntligt bliver vist... eller en som sagt et cronjob (http://www.webopedia.com/TERM/C/cron.html )
Avatar billede tlunde Nybegynder
27. september 2005 - 09:19 #9
Okay, ser lige om jeg kan finde ud af at lave sådan et cronjob...
Avatar billede tlunde Nybegynder
27. september 2005 - 09:59 #10
Kan ik rigtigt finde ud af at lave sådan et cronjob, så kigger lige lidt senere på, om jeg kan finde ud af at lave den funktion der hiver datoerne ud af databasen, og sender mailen ud fra disse oplysninger...
Avatar billede jaw Nybegynder
30. september 2005 - 11:12 #11
www.cronjob.de kan sende php-cronjobs for dig hvis ikke din egen server eller host kan klare det.
Avatar billede tlunde Nybegynder
11. oktober 2005 - 15:13 #12
Har ik fået hjælp til at løse problemet korrekt, så lukker her...
Avatar billede horsmark Nybegynder
11. oktober 2005 - 19:10 #13
well kan du ikke smide din løsning her så :-)

(andre kan måske få gavn af den)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester