pyyntöjen välisen ajan mittaaminen

germaani.

Osaisiko joku sanoa mikä alle olevassa ajankäytössä on vikana?

Aika kyllä kulkee aina sekunnittain eteenpäin,
mutta edessä on liikaa numeroita.

Tulostus on seuraavanlainen:
Edellisestä vierailusta kulunut: 1183905805 sekuntia.

Ja sekunnin päästä:
Edellisestä vierailusta kulunut: 1183905806 sekuntia.

Eli "muutama" ylimääräinen numero tuossa edessä...

Koodi on seuraavanlainen:
session_start();
$_SESSION['laskuri'] ;
$aika_nyt = time();
$kulunut_aika = $aika_nyt - $edellinen_aika;

if($_SESSION['laskuri'] > 1)
{
         echo "Edellisestä vierailusta kulunut: ";
         echo $kulunut_aika . " sekuntia.";
}

else
{
echo "Ensimmäinen kertasi sivulla!";
         
}
$edelllinen_aika = $aika_nyt;

12

295

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hfhfh

      Koodi suoritetaan ylhäältä alaspäin.

      "$aika_nyt = time();
      $kulunut_aika = $aika_nyt - $edellinen_aika;"

      Nykyisestä ajasta vähennetään null(0) joten näät sekuntteina sen mitä 1970 jälkeen on tullut, joka on juurikin tuota 1183905805 luokkaa.


      "$edelllinen_aika = $aika_nyt;"
      Ja tämän jälkeen sitten scriptin suoritus loppuu. $edelllinen_aika jne... muuttujien tiedot eivät säily ens pyyntöön.

      Tässä sulle pikkasen esimerkkiä.

      // On vierailtu ennen
      if (isset($_SESSION['edellinen_aika'])
      {
      echo $aika_nyt - $_SESSION['edellinen_aika'];
      }
      // ei ole vierailtu
      else
      {
      echo 'eka kerta';
      }

      Lisääppäs tuo aika sessioon
      $_SESSION['edellinen_aika'] = $aika_nyt;

      • germaani.

        siis tuolla if-lausejutulla se tulosti vaan joka kerta "Eka kerta sivulla".

        Noh, palaisin sitten alkuperäiseen ja laitoin sessioniin edellinen_aika. Tulos oli kuitenkin sama kuin aikaisemmin, eli joitakin miljoonia sekuntteja...

        koodi:
        session_start();
        $_SESSION['edellinen_aika'];
        $_SESSION['laskuri'] ;
        $aika_nyt = time();

        if($_SESSION['laskuri'] > 1)
        {
                 echo $aika_nyt - $SESSION['edellinen_aika'];
        }

        else
        {
                 echo "Ensimmäinen kertasi sivulla!";
                 
        }
        $_SESSION['edellinen_aika'] = time();


      • hfhfh
        germaani. kirjoitti:

        siis tuolla if-lausejutulla se tulosti vaan joka kerta "Eka kerta sivulla".

        Noh, palaisin sitten alkuperäiseen ja laitoin sessioniin edellinen_aika. Tulos oli kuitenkin sama kuin aikaisemmin, eli joitakin miljoonia sekuntteja...

        koodi:
        session_start();
        $_SESSION['edellinen_aika'];
        $_SESSION['laskuri'] ;
        $aika_nyt = time();

        if($_SESSION['laskuri'] > 1)
        {
                 echo $aika_nyt - $SESSION['edellinen_aika'];
        }

        else
        {
                 echo "Ensimmäinen kertasi sivulla!";
                 
        }
        $_SESSION['edellinen_aika'] = time();

        Sul on tuol koodissasi pikkuinen moka, sen kun korjaa niin toimii.

        Lisääppäs scriptin alkuun
        error_reporting(E_ALL);
        ini_set("display_errors","On");

        Niin huomaat missä vika.


    • germaani.

      eli se ilmoitt undefinex index... joten alustelin muuttujat.

      Tulos:
      Nyt se taas tulostaa kokoajan "Ensimmäinen kertasi sivuilla"

      • hfhfh

        Katsohan tarkkaan kohta echo $aika_nyt - $SESSION['edellinen_aika']; siinä on virhe.


      • germaani.
        hfhfh kirjoitti:

        Katsohan tarkkaan kohta echo $aika_nyt - $SESSION['edellinen_aika']; siinä on virhe.

        eli nyt muutin sen
        $aika_nyt - $_SESSION['edellinen_aika'];

        mutta edelleenkin tulostaa kokoajan:
        "Ensimmäinen kertasi sivulla"


    • NAURAJA!!!!!

      Missä kohtaa muka sä alunperinkään tallennat sessioniin mitään aikatietoa?

      Mieti sitä :D

      Sulla on todella paha ajatuskatko tai sit sulla ei kertakaikkiaan ole hajuakaan :D

      • NAURAJA!!!!!!

        Tallenna sessioniin aina se time() - älä mitään muuta.

        Jos se session-muuttuja on olemassa tiedät että se on aina time().

        Koska aika juoksee aina vain ja ainoastaan yhteen suuntaan SERVERILLÄ ei tarvi miettiä kellojen synkronointia. Voit miinustaa uudesta ajasta vanhan ajan ... ja sitten tallentaa uuden ajan sessioniin.

        Joko valottui?

        Nyt katso ensimmäistä koodiasi ja sitten NAURA.


      • NAURAJA!!!!!
        NAURAJA!!!!!! kirjoitti:

        Tallenna sessioniin aina se time() - älä mitään muuta.

        Jos se session-muuttuja on olemassa tiedät että se on aina time().

        Koska aika juoksee aina vain ja ainoastaan yhteen suuntaan SERVERILLÄ ei tarvi miettiä kellojen synkronointia. Voit miinustaa uudesta ajasta vanhan ajan ... ja sitten tallentaa uuden ajan sessioniin.

        Joko valottui?

        Nyt katso ensimmäistä koodiasi ja sitten NAURA.

        session_start();
        if (!$_SESSION['aika'])
        {$_SESSION['aika'] = time();
        echo "Eka kerta sivulla";
        exit();
        }
        else
        {
        $sekunnit = time() - $_SESSION['aika'];
        $_SESSION['aika'] = time();
        echo "Viime käynnistäsi oli $sekunnit sekuntia";
        }


        noin yksinkertaista.


      • Hihittelijä vielä....
        NAURAJA!!!!! kirjoitti:

        session_start();
        if (!$_SESSION['aika'])
        {$_SESSION['aika'] = time();
        echo "Eka kerta sivulla";
        exit();
        }
        else
        {
        $sekunnit = time() - $_SESSION['aika'];
        $_SESSION['aika'] = time();
        echo "Viime käynnistäsi oli $sekunnit sekuntia";
        }


        noin yksinkertaista.

        if (!$_SESSION['aika'])

        pitäisi olla

        if (is_null($_SESSION['aika']))


      • germaani.
        Hihittelijä vielä.... kirjoitti:

        if (!$_SESSION['aika'])

        pitäisi olla

        if (is_null($_SESSION['aika']))

        No nyt toimii...

        Tosiaan minähän alustin tuolla koodissa $_SESSION['edellinen_aika'] aina nollaksi... joten eihän siell sit mitään voinut olla..


      • hfhfh
        germaani. kirjoitti:

        No nyt toimii...

        Tosiaan minähän alustin tuolla koodissa $_SESSION['edellinen_aika'] aina nollaksi... joten eihän siell sit mitään voinut olla..

        "Tosiaan minähän alustin tuolla koodissa $_SESSION['edellinen_aika'] aina nollaksi... joten eihän siell sit mitään voinut olla.."

        Jos tarkoitat koodissasi olevaa
        $_SESSION['edellinen_aika'];

        Tuo ei tee yksinkertaisesti mitään, ei edes alustakkaan, joten turha on.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ootko nainen jotenkin

      Epävarma ulkonäöstäsi
      Ikävä
      219
      5973
    2. Minun rakkaani.

      Haluaisin käden mitan päähän sinusta. Silleen, että yltäisin koskettamaan, jos siltä tuntuu. Olen tosi huono puhumaan, m
      Ikävä
      26
      3734
    3. Koska näet seuraavan kerran

      Kaivattusi? Onko päivä tiedossa vai sattumasta kiinni?
      Ikävä
      82
      2587
    4. Ootko nainen jotenkin

      itseäs täynnä? Mars laihduttamaan. 🫵🏽 K
      Ikävä
      39
      2121
    5. Hyvästi.....

      En vain enää jaksa.....
      Ikävä
      33
      1902
    6. Hyvää yötä

      Mm❤️
      Ikävä
      45
      1868
    7. Ongelma Ibizalla

      Mistä saada triatleetin jalkaan mahtuva kenkä häitä varten?
      Kotimaiset julkkisjuorut
      107
      1765
    8. Eelle

      Huomenta,ajattelen sua..
      Ikävä
      21
      1656
    9. Hauskaa nimipäivää rakkaalle!

      On kova ikävä. Rakastan sua ikuisesti ❤️🤗😘
      Ikävä
      27
      1502
    10. Tappajamanne kiinni

      Herätys koko Mikkeli! Nyt tietoa kehiin, että saadaan tämä tappaja kiinni!
      Mikkeli
      33
      1458
    Aihe