Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php-scriptin suorittaminen kerran päivässä palvelimella

Sivun loppuun

dartvaneri [28.04.2012 17:18:48]

#

Moro!
Tuli sellainen pienehkö projekti, johon porukka rekisteröityy. Sitten siitä tasan vuoden päästä pitäisi lähettää sähköposti käyttäjälle. Myös jatkossa pitäisi lähteä aina vuoden välein sähköposti. Ja tämä sama tehdään kaikille käyttäjille niiden rekisteröitymis päivänä. Tässä projektissa ei onnistu se, että viesti lähetetään kaikille yhtä aikaa, vaan se pitää olla aina vuoden päästä rekisteröitymisestä, tai edellisestä viestistä. Rekisteröitymisen aika tallenetaan tietokantaan.

Juurikaan ei ole tausta tietoa, mutta uskon, että ei onnistu kokonaan php:llä.
Uskoisin, että tämä onnistuisi sillä tavalla, että ajoittaisi jollakin tavalla(apache?)sen suorittamaan tietyn php-tiedosto, jossa on se scripti, joka lähettää mail()-funktiolla spostin, ja tekisi joitain kyselyitä tietokantaan, päivän välein, eli sitten hakisi siellä php-tiedostossa ne osoitteet, jotka ovat rekisteröityneet samalla päivämäärällä.
Siis yksi suoritus joka päivä. Kun kuitenkaan ei voida olettaa, että joka päivä kävisi, varsinkin aluksi, joku sivulla, ja näin ollen suorittaisi php-scriptin.

Onko tämä järkevää, ja miten tämä ajoituksen toteuttaisi?

Ps. Saa ehdottaa parempiakin tapoja, mutta itse näen tämän helpoimmaksi, jos vain toi ajoitus onnistuu helposti.

Edit. Otsikko vaihettu.

Triton [28.04.2012 17:55:14]

#

Ajoitettuja tehtäviä pystyy suorittamaan linux-maailmassa ainakin Cronilla.

dartvaneri [28.04.2012 17:56:09]

#

Juu ubuntu on palvelimessa.

ZeroGravity [28.04.2012 22:14:47]

#

Itsekin ehdotan tuota cronia - mutta semmoinen huomio, että vaikka sivuilla ei kävisikään tavallisia ihmisiä, niin jos vaan saat hakukoneet huomaamaan sivusi (eikä se ole vaikeaa), niin nehän käy enemmän kuin "laki sallii sivuillasi" (=enemmän kuin kerran päivässä), jollet sitten mene sitä kieltämään - mutta tietenkin cron jobi on varmempi ja ehdottomasti se suositeltava.

Kannattaa katsoa Apache lokia, siellä sitä löytyy googlebotin, baiduspiderin, bingbotin, sun muiden hakuja, puhumattakaan niistä jotka yrittävät löytää porsaanreikiä saitistasi :)

pistemies [29.04.2012 15:10:41]

#

Olen mie tehnyt vastaavia pelkällä php:lla. Tässä mitä olen käyttänyt on pieni pulma, jos sivulla on vähän kävijöitä ja halutaan lähettää viestiä kun on kulunut tasan vuosi eikä päivääkään yli.

Tarkistetaan vaan päiväys ja kun se on pienempi kuin kuluva aika (time), lähetetään sähköposti. Samaan aikaan tallennetaan tieto siitä, että viesti on lähetetty niin ei laita sähköpostia moneen kertaan. Kun ohjelma toteaa, että viesti on lähetetty, se alkaa laskemaan seuraavaa kertaa (rekisteröityminen + 2 vuotta) jne.

dartvaneri [30.04.2012 09:04:50]

#

Ei se onnistu niin, kun se on aivan ehdoton, että sähköpostin pitää lähteä tasan vuoden kuluttua rekisteröitymisestä. En missää nimessä lähde luottamaan siihen, että jokapäivä on joku käynyt sivustolla.
Onkos tällä cornilla mahdollista tehdä sillai, että se suorittaa sen php-tiedoston viitenä päivänä viikossa, ma-pe, eli la, su ei saa lähteä, sitten maanantaina lähtee la ja su viesti?

Lebe80 [30.04.2012 09:41:18]

#

dartvaneri kirjoitti:

Onkos tällä cornilla mahdollista tehdä sillai, että se suorittaa sen php-tiedoston viitenä päivänä viikossa, ma-pe, eli la, su ei saa lähteä, sitten maanantaina lähtee la ja su viesti?

No siis riippuu ihan miten ite olet sen php-skriptin tehnyt. Eli jos olet tehnyt sen niin, että kun tarkistat jonkin aikaleiman perusteella, että käyttäjä on rekisteröitynyt _tai_ viimeisestä muistutus-sähköpostista (tms) on kulunut se 1v vähintään, niin tietenkin se silloin lähtee viikonlopun jälkeen maanantaina, jos tuon meilin olisi pitänyt lähteä jo viikonloppuna. Sähän voit käyttää samaa skriptiä cronin kanssa ja vaikkapa ihan sivuston omassa index.php -skriptin joukossa.

En tosin ymmärrä, miksi sähköposti ei saa lähteä viikonloppuna, tosin, olenkin jo yli kolmekymppinen ja pidän sähköpostiviestiä vielä semmoisena asiana, jota ei ole pakko lukea viikonloppuisin, enkä odota sitä muiltakaan.

ErroR++ [30.04.2012 10:13:18]

#

Olisiko sellainen mahdollinen, että cron ajaisi joka päivä
PHP-skriptin joka tekee nuo tehtävät?

Blaze [30.04.2012 10:29:17]

#

dartvaneri kirjoitti:

Onkos tällä cornilla mahdollista tehdä sillai, että se suorittaa sen php-tiedoston viitenä päivänä viikossa, ma-pe

On.

0 3 * * 1-5 php ~/laheta_meilit.php

Lisätietoja man 5 crontab

dartvaneri [30.04.2012 12:15:19]

#

okei, kiitos. Kyllähän tuo tosiian onnistuisi php:n avullakin tuo, että se lähettää vain ma - pe.

Lebe80 [30.04.2012 12:45:35]

#

dartvaneri kirjoitti:

okei, kiitos. Kyllähän tuo tosiian onnistuisi php:n avullakin tuo, että se lähettää vain ma - pe.

Silloin tosiaan vaaditaan että joku tai jokin ajaa skriptin. Eli tällöin voidaan laittaa skripti ajettavaksi esim. sivuston koodin joukossa (esim. index.php yms. sivun rakentava/näyttävä koodi), tai jos sivustolla ei käy välttämättä päivittäin käyttäjiä, niin ajastaa jokin suorittamaan php-skripti (mainittiin jo aikaisemminkin eli cron ).

dartvaneri [30.04.2012 15:39:04]

#

Lebe80 kirjoitti:

dartvaneri kirjoitti:

okei, kiitos. Kyllähän tuo tosiian onnistuisi php:n avullakin tuo, että se lähettää vain ma - pe.

Silloin tosiaan vaaditaan että joku tai jokin ajaa skriptin. Eli tällöin voidaan laittaa skripti ajettavaksi esim. sivuston koodin joukossa (esim. index.php yms. sivun rakentava/näyttävä koodi), tai jos sivustolla ei käy välttämättä päivittäin käyttäjiä, niin ajastaa jokin suorittamaan php-skripti (mainittiin jo aikaisemminkin eli cron ).

Tarkoitin sitä, että jos se scripti suoritetaan joka päivä, niin se voidaan php:n avulla katsoa onko se päivä ma-pe vai eikö, ja jos ei, ei lähetetä silloin niitä viestejä. Eli joka tapauksessa jollain cronin tyyppisellä jutulla ajastus.

pistemies [30.04.2012 16:19:49]

#

dartvaneri kirjoitti:

Tarkoitin sitä, että jos se scripti suoritetaan joka päivä, niin se voidaan php:n avulla katsoa onko se päivä ma-pe vai eikö, ja jos ei, ei lähetetä silloin niitä viestejä. Eli joka tapauksessa jollain cronin tyyppisellä jutulla ajastus.

Kyllä cronillakin tuon viikonpäivän voi tarkistaa:

http://linux.fi/wiki/Komentojen_ajastaminen

Kuten jo Blaze mainitsi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta