Hei!
yritin etsiä haulla, mutta en löytänyt täällä jo kertaalleen ollutta php koodinpätkää, jolla sai selaimen päivittämään sivua x kertaa, jonka jälkeen tapahtuu uudelleenohjaus.
Nyt käytössä on vain tämä:
<?php header("Refresh: x; url=http://tähän tulee www osoite"); ?>
Voisiko tuohon lisätä sen, että sivu päivittyy x määrän kertoja, jonka jälkeen tapahtuu sitten tuo uudelleenohjaus?
Eikö tuota voisi helposti hanskata myös keksissä, ja latauksien x jälkeen nollata arvo ja uudelleenohjata?
PHP:n näkökulmasta jokainen päivitys on uusi sivunlataus, joten mitään suoraa lukumäärän asetusta ei ole. Voit kuitenkin pitää laskuria vaikka evästeessä. Toki käyttäjällä on mahdollisuus silloin nollata laskuri selaimen työkaluilla.
Koodilla on sivuilla kaksi tarkoitusta.
1. Pitää käyttäjä x määrän aikaa sivuilla ennen uudelleenohjausta.
2. jaksottainen refresh tarkkailee että käyttäjällä on tietyt asetukset päällä koko sivuilla oloajan.(tukea muita scriptejä).
Aiemmin täällä ollut koodi oli suhteellisen yksinkertainen, eikä muistaakseni tarvinnut evästeitä. Ne ovat myös epävarmat, jos evästeet on pois kytketty tai niitä ei sallita sillä hetkellä.
Eli yksinkertainen koodi joka refreshaa sivua vaikkapa 10sek välein 10 kertaa jonka jälkeen tapahtuu uudelleenohjaus.
Miksi haluat päivittää sivun useasti ennen uudelleenohjausta ja tarkkailla käyttäjän asetuksia? Onko tarkoituksena estää käyttäjää kiertämästä sivuilla olevia skripteillä tehtyjä rajoituksia?
Eikös toi onnistu ilman evästeitä kun laittaa refreshin urliin sen laskurin arvon.
Kiitos Grez, tällä se onnistuu!
Evästeitä tosiaan voi käyttäjä muokata suoraan selaimella, joten kyllä tuo backendissä kannattaa tehdä.
groovyb, millä tavalla tämä sitten mielestäsi pitäisi tehdä backendissa? Pitäisikö vaatia kirjautuminen ja käyttää istuntoja? Grezin ratkaisuhan on vielä evästeitäkin avoimempi, kun laskuri näkyy sivun osoitteessa, joten et varmaan sitä ehdota evästeiden korvaajaksi.
Sessiota voi käyttää ilman kirjautumistakin. Eli pitää vaikka sessiossa sivulatausten määrää, ja mikäli arvo täyttyy, rendaa tarvittavat uudelleenohjauskilkkeet seuraavalla rendaamiskerralla.
En varsinaisesti PHP:ta kirjoittele, enkä edes osaa, mutta kaiketi johonkin tähän suuntaan:
<?php //session_start(); jossakin missä sen kuuluu olla if(!isset($_SESSION['reloadCounter'] )) { $_SESSION['reloadCounter'] = 1; } if($_SESSION['reloadCounter'] == 5) { $_SESSION['reloadPage'] = 1; } else { $_SESSION['reloadCounter'] = $_SESSION['reloadCounter'] + 1; } if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); unset($_SESSION['reloadCounter']); echo' <script> window.location = "redirect_kohde.php"; </script> '; } else { echo' <script> window.location.reload(true); </script> '; } ?>
Istunto ei toimi tyhjästä, vaan istunto tunnistetaan yleensä evästeen tai GET-parametrin perusteella. Istunnon voi siis käytännössä tyhjentää poistamalla sen evästeen.
No onhan siinä se hyvä puoli, että uudelleenlatauskierrosten määrää ei voi vähentää.
Onhan siinä, joo. Toisaalta jos kysyjä kertoisi, mikä on koko sotkun tarkoitus, varmaan löytyisi vielä jokin 1000000%%% parempi ratkaisu.
1000000%%% sievenee muotoon 1.
Hienoa, Jaska, oletpa viisas! Itse kun luulin, että prosenttimerkki tarkoittaa vain isoa lukua.
No niinpä olenkin! Kyllä kai jokaiselle peruskoulun käyneelle on opetettu, että prosentti on sadasosa.
Kaikki peruskoulun käyneet ei silti sitä ymmärrä. Promilleista puhumattakaan :D
Jaska kirjoitti:
(19.01.2016 19:51:57): No niinpä olenkin! Kyllä kai jokaiselle...
Prosentti on mitta jota käytetään ilmaisemaan suhteellista osuutta.
Taas 1% on sadasosa. :I
Aihe on jo aika vanha, joten et voi enää vastata siihen.