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;
pyyntöjen välisen ajan mittaaminen
12
295
Vastaukset
- 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
- 2195973
Minun rakkaani.
Haluaisin käden mitan päähän sinusta. Silleen, että yltäisin koskettamaan, jos siltä tuntuu. Olen tosi huono puhumaan, m263734- 822587
- 392121
- 331902
- 451868
- 1071765
- 211656
- 271502
Tappajamanne kiinni
Herätys koko Mikkeli! Nyt tietoa kehiin, että saadaan tämä tappaja kiinni!331458