29. november 2003 - 13:45Der er
20 kommentarer og 2 løsninger
Automatisk check af fødselsdag i db og send mail
Hej Alle
Hvordan kan man lave en funktion som kører på ens webhotel (Azero) hverdag dag og checker om en har fødselsdag. Hvis en person har fødselsdag skal der der udsendes en mail til alle i db.
Nu er det en rum tid siden, at jeg sidst har kodet ASP, da jeg valgte at skifte til PHP. Men det er vel noget i stil med :
1. Forbindelse til database. 2. Løkke, som gennemkøres så længe der er fødselsdage (while) 3. Betingelse som udføres, hvis en fødselsdato = idag (Now())
Det kan du bedst lave ved, at placere koden på din index-fil. og hvis du vil være _helt_ sikker på, at de blev eksekveret lige meget hvilken fil brugeren besøgte, så ville jeg lave det i en seperat fil, og så inkludere denne på alle dine sider.
du kunne vel bruge: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("mindatabase.mdb") Conn.Open DSN
strSQL = "select * from TABELNAVN where fdato = #" & date() & "#" Set rs = Conn.Execute(strSQL)
if (not rs.bof) and (not rs.eof) then ' der er fundet mindst 1 fødselsdato
do while no rs.eof response.write "Brugeren, " & rs("brugernavn") & ", har fødselsdag idag.<br>" rs.movenext loop
conn.close set conn = nothing %>
Der bruges en Access database med: TABELNAVN er navnet på din tabel. "brugernavn" (type: tekst) er feltet med navnet på brugeren. "fdato" (type: dato) er feltet med datoerne.
>> webcreator Ja, det er ok men hvis der ikke er nogle inde på siden så ville man aldrig få en reminder. Derfor hvordan laves denne proces automatisk unden at nogle skal være indblandet??.
>>thesurfer Hvor ville du placere denne kode henne, det eneste den skal gøre er at sparke en mail afsted hvis en bruger har fødselsdag (AUTOMATISK) ??
Men må indrømme, at jeg ikke kan give dig svar på dit spørgsmål. Selv har jeg mellem 50-250 besøgende om dagen på vores site. Så jeg ville være relativt sikker på, at en evt. mail ville blive sendt. Men hvis du ikke har så mange besøgende, så kan jeg godt se problemet.
Skal mailen sendes af sted automatisk, dvs et system der checker 1 gang om dagen om der er nogen der har føsdag? Det kan vist gøres med "Cronjob", se http://azero.dk/support/generel/
Ellers, skal koden afvikles når en bruger besøger siden.. så skal du have et ekstra felt der (et ja/nej felt) der vælger om en mail skal sendes afsted..
thesurfer -> Cronjob koster penge så vidt jeg kan se, og kan præcist det samme som det jeg linker til, man skal bare kode sit føs-dags script ind i det...
nielsmo >> ja global.asa ( http://azero.dk/support/programmering/asp/global-asa/ ) kunne da være muligheden. Men jeg har svært ved at se hvordan den skal trikkes hvis der f.eks en enkelt dag ikke kommer en bruger ind på siden ??
nielsmo> I dit link: "I følgende eksempel viser jeg indholdet af en global.asa fil, som for hver besøgende tjekker, om..." Dvs, koden bliver kun udført hvis der er nogen der besøger siden. Hvis ikke der er besøgende på siden, bliver der ikke tjekket for føsdatoer.. Det vil sige, at det er lige som min kode, bare mere indviklet.
Og jeg skrev også: "Ellers, skal koden afvikles når en bruger besøger siden.. så skal du have et ekstra felt der (et ja/nej felt) der vælger om en mail skal sendes afsted.." Man kunne også vælge en dato i sted for ja/nej. Det er for at undgå at en bruger får 250 mails hvor der står "Tillykke", fordi der har været 250 brugere på sitet.
cypherdenmark -> Så bliver der desværre ikke afsendt nogen mails, hvis du vil være helt sikker på det, så skal du bruge cronjob..... thesurfer -> Men mailen bliver jo alligevel ikke sendt, hvis der ikke er nogen der besøger siden, for så bliver koden jo ikke udført...
..hvis du får nok besøgende, til at indsamle minimum 16,50 kr/måned via banner/reklame, kan du overveje Cronjob.. så skal dit site bare være lidt "attraktiv", så du får mange brugere :)
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.