Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: rand()-functionin joka kerta uudelleen suorittaminen

Sivun loppuun

JuustoPala [31.07.2013 22:40:06]

#

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).

vesikuusi [31.07.2013 23:00:05]

#

Varmista, ettei ongelma johdu selaimen välimuistista tai siemenestä, jota rand käyttää.

JuustoPala [31.07.2013 23:05:11]

#

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?

vesikuusi [31.07.2013 23:13:47]

#

Itselläni seuraava koodi kyllä tulostaa aina eri luvun.

<?php echo rand (); ?>

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.

<?php srand ( 0 ); echo rand (); ?>

Edit. korjasin viestiä, my bad.

Arttut02 [31.07.2013 23:20:55]

#

Tsekkaas tämä keskustelu stackoverflowsta. Javascripti näyttäisi olevan tie ainakin osittaiseen onneen.

JuustoPala [31.07.2013 23:44:45]

#

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.

vesikuusi [01.08.2013 00:37:22]

#

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.

JuustoPala [01.08.2013 00:51:17]

#

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?topic=54.msg576#new .

(reksiteröityminen tarvitaan)


Sivun alkuun

Vastaus

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

Tietoa sivustosta