Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Kerran päivässä

Lahha [10.08.2007 23:07:29]

#

Meni sormi suuhun kun pitäis saada php:lla semmoinen aikaan että joka päivä ekalla suoritus kerralla suoritetaan tietty toiminto.

Niko [10.08.2007 23:27:05]

#

cronilla suoritat php skriptin tai jos on tarpeeksi kävijöitä niin tarkistat ajan ja sen perusteella päätät suoritetaanko (tai käytät palvelua joka "käy" sivulla tietyn ajan välein)

Lahha [11.08.2007 12:32:24]

#

Tein sillai et paivä tallennetaan tiedostoon ja jos se on eri kuin nykyinen päivä niin si suoritetaan se toiminto.

Vasta_alkaja [11.08.2007 17:34:25]

#

Esimerkiksi:

- Katsot mikä päivä tänään on!

  $TamaPaiva = date(d.m.Y); // 11.08.2007
  $VerrattavaPaiva = date(d.m.Y);

- Sinulla on piilokenttä

   <input type="hidden" value="ElaNayta" name="ElaNayta">

- Suoritat toiminnon sivulla mikä pitää tehdäkin, sivu latautuu uudestaan

  if($TamaPaiva == TamaPaiva && $_REQUEST['ElaNayta'] == '')
  {
     echo 'Muuttujan TamaPaiva arvo on sama, kuin muutujan VerrattavaPaiva,
           sekä arvoa ElaNayta ei ole asetettu';
  }
  else
  {
  }

Eli kun sivu latautuu ensimmäisen kerran, asetat arvon ElaNayta ja toimintoa ei enää suoriteta. Tietenkin jos haluat niin, että jos selain suljetaan ja sama toimii taas, niin sinun tulee tallentaa tämä tieto tekstitiedostoon, cookieen tai tietokantaan. Toivottavasti jotakin selventi. :D

Lebe80 [12.08.2007 03:36:55]

#

vasta_alkaja:
Eihän se homma nyt noin toimi.

Vaan tieto, onko kyseinen toiminto ajettu jo tänään pitää tallentaa palvelimelle, eikä siitä mitään ylimääräisiä formin kenttiä aleta lisäilemään enää käyttäjälle, vaan pidetään tieto silloinkin vain palvelimella. Ei tarvita mitään uudelleen latauksia, vaan toiminto ajetaan esim. ennen sivun tulostamista.

sivulataukset pseudokoodilla kutakuinkin näin:

// toiminnon tarkistaminen mieluiten kokonaan omaksi toiminnoksi
//
if ( !toimintoOnJoAjettuTänään() ){
 tallennaTietoEttäToimintoOnAjettu(); // tallentaa tiedon, että toiminto on ajettu, sijoita todellisuudessa esim. ajetaanToiminto -funktion sisälle

 ajetaanToiminto();
}
//
// ja funktio loppuisi siis tähän


normaaliSivunRakentaminen ();

edit:
siis samalla tavalla kuin Lahha jo sanoikin.

Vasta_alkaja [13.08.2007 08:48:10]

#

Kieltämättä noin se toimisi varmasti paremmin.

Vastaus

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

Tietoa sivustosta