Miten saan rand()-functionin suoritettua aina uudelleen, kun sivu aukeaa?
Kun painan takaisin-nuolta (selaimesta), pääsen takaisin sivulle jossa on rand()-functioni, muttei se arvo uutta numeroa. Sitä voidaan käyttää hyväkseen, sillä olen tekemässä captcha-tyylistä koodia (vai voiko sitä enää captcha:ksi kutsua, kun ideana on random lasku, eikä kuva).
Varmista, ettei ongelma johdu selaimen välimuistista tai siemenestä, jota rand käyttää.
Varmistan vielä, että ymmärsit oikein:
rand() arpoo uuden numeron, kun menen sivulle, päivitän sivun, tms., muttei arvo uutta numeroa, kun menen "takaisin-nuolella" sivulle.
Onko edes mahdollista saada tämä toimimaan?
Itselläni seuraava koodi kyllä tulostaa aina eri luvun.
Paitsi jos siirryn sivulle seuraava- tai takaisin-nuolesta, jolloin selain lataa sivun välimuistista ja luku pysyy samana.
Lisäys:
Joten:
vesikuusi kirjoitti:
Varmista, ettei ongelma johdu selaimen välimuistista tai siemenestä, jota rand käyttää.
Kutsutko srand-funktiota? Minulla seuraava koodi tulostaa aina saman luvun.
Edit. korjasin viestiä, my bad.
Tsekkaas tämä keskustelu stackoverflowsta. Javascripti näyttäisi olevan tie ainakin osittaiseen onneen.
Rand arpoo siis uuden numeron päivitettäessä sivun tms. ks.
Juustopala kirjoitti:
rand() arpoo uuden numeron, kun menen sivulle, päivitän sivun, tms.
--
Nähtävästi ongelman ratkaisisi, jos välimuisti poistuisi käytöstä.
Arttut02 kirjoitti:
Tsekkaas tämä keskustelu stackoverflowsta. Javascripti näyttäisi olevan tie ainakin osittaiseen onneen.
Kokeilin noita kaikkia koodeja, eivätkä ne auttaneet.
Okei, taisin lukea vähän huolimattomasti.
JuustoPala kirjoitti:
Nähtävästi ongelman ratkaisisi, jos välimuisti poistuisi käytöstä.
Se, miten sivun tallennus välimuistiin estetään kaikilla selaimilla onkin ihan oma taitolajinsa. Voit aloittaa tästä keskustelusta.
Ei se kovin vaikeaa ollu :).
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1. header('Pragma: no-cache'); // HTTP 1.0. header('Expires: 0'); // Proxies.
Toimi erittäin hyvin! Kiitos!
Btw, projektiani voi seurata täältä http://www.trollilaatikko.fi/foorumi/index.php?
(reksiteröityminen tarvitaan)
Aihe on jo aika vanha, joten et voi enää vastata siihen.