ugrás a tartalomhoz

Auto refresh számláló reset

Termes · 2013. Aug. 5. (H), 08.54
Sziasztok!

Adott egy auto refresh, ami 900 másodperc múlva frissíti az adott oldalt.

Az a kérdésem, hogy mivel lehetne megoldani, hogy ha éppen egy form kitöltése közben frissít, akkor a mezőbe beírt adatok megmaradjanak, vagy hogyan tudom a 900 másodperces intervallumot újraindítani anélkül, hogy az oldal frissülne?

Szimplán ezt használom, de nyilván ez nem jó.
header("Refresh: 900; javascript:history.go(0);");
Ezt pedig az oldalon:
$bar .= '<div class="myFloatBarLent" align="center"><a name="top" title="A tétlenségi időkorlát 15 perc. Azután automatikusan frissít. Ezt vedd figyelembe. A frissítés gombbal újraindíthatod a számlálót.">
<img align="absmiddle" src=kepek/lock.png height="20"> Időkorlát: <b id="show-time">900</b> másodperc múlva lejár. <a href="javascript:history.go(0);"><b><u>Frissítés</b></u></a></div>';
Köszönöm a segítséget.

Üdv:
T
 
1

Igy nem

janoszen · 2013. Aug. 5. (H), 09.26
Igy nem, JavaScriptbol kell megoldanod hogy meg tudd allitani a frissitest. Egyebkent miert akarsz ilyesmit csinalni? Nem lenne jobb neked valami AJAX-os megoldas?
4

de...

Termes · 2013. Aug. 5. (H), 11.09
De igen jobb lenne Ajax, csakhogy ahhoz még annyira sem értek, mint a php-hez. Emiatt kérnék egy szamárvezetőt.
2

Miért?

Poetro · 2013. Aug. 5. (H), 10.12
Egyáltalán miért van szükség az oldal újratöltésére?
3

a felhasználó miatt

Termes · 2013. Aug. 5. (H), 11.08
A felhasználók bent tartása miatt van szükség és jelenleg más megoldást nem ismerek erre..
5

Session?

hunkris · 2013. Aug. 5. (H), 12.40
Session?
6

igen

Termes · 2013. Aug. 5. (H), 13.16
Igen, de nem tudom beállítani, hogy 15 percnél tovább tartson a munkamenet.
7

Tessék

hunkris · 2013. Aug. 5. (H), 13.18
8

Miért?

Poetro · 2013. Aug. 5. (H), 13.20
Miért nem tudod beállítani? Egyszerűen be kell állítani, hogy a session cookie addig éljen, amíg a böngészőt be nem zárják. session_set_cookie_params Session Cookie Lifetime session_cache_expire
9

Osztott gépen ez sajnos nem

Joó Ádám · 2013. Aug. 5. (H), 14.20
Osztott gépen ez sajnos nem mindig fog menni a session.gc_maxlifetime direktíva miatt.
10

Osztott gépen

Poetro · 2013. Aug. 5. (H), 14.33
Osztott gépen nem rendszerben szokták fájlban tárolni a munkamentet, hanem valami más osztott tárolóba, mondjuk memcache, redis vagy adatbázis, természetesen egyedi munkamenetkezeléssel. Ekkor pedig felül tudod bírálni, hogy mikor is kell a munkamenetet törölnöd (mivel eleve te kezeled).
11

Osztott gép alatt értve a

Joó Ádám · 2013. Aug. 5. (H), 16.29
Osztott gép alatt értve a shared hostot :)
12

Oh

Poetro · 2013. Aug. 5. (H), 16.32
Hát én erre sohasem szoktam gondolni. Dedikált, illetve teljesen irányítás alatt tartott rendszereken szoktam dolgozni. Valahogy ez így sose jut eszembe.
13

Azon meg miért akarna ugye az

Joó Ádám · 2013. Aug. 5. (H), 16.44
Azon meg miért akarna ugye az ember PHP-t futtatni :)
14

A Facebook-nál miért maradtak

Hidvégi Gábor · 2013. Aug. 5. (H), 17.27
A Facebook-nál miért maradtak a PHP-val?
15

Legacy. Munkaerő.

Joó Ádám · 2013. Aug. 5. (H), 17.30
Legacy. Munkaerő.
16

Ez a válasz a kérdésedre.

Hidvégi Gábor · 2013. Aug. 5. (H), 17.46
Ez a válasz a kérdésedre.
17

Filozófia kérdése.

Joó Ádám · 2013. Aug. 5. (H), 18.45
Filozófia kérdése.
19

Filozófiából nem lehet

Hidvégi Gábor · 2013. Aug. 6. (K), 10.12
Filozófiából nem lehet megélni.
21

Dehogynem. Csak már az elején

Joó Ádám · 2013. Aug. 6. (K), 15.32
Dehogynem. Csak már az elején jól kell választani és moduláris rendszert építeni (legacy), és nem a tömegekre, hanem bármilyen nyelven boldoguló programozókra kell építeni (munkaerő).
18

Biztonság

Pepita · 2013. Aug. 6. (K), 00.29
Biztonsági szempontból én egyáltalán nem tartom rossz ötletnek az időkorlátot (használom is), de nem oldalt töltök újra. Egyszerűen logout, ha túl soká jött a következő kérés.
Kérdezőnek: Itt meg, ha töltikézi a formot, küldj egy ajax kérést, ami frissíti a sessiont, akár csak a sütit. Mondjuk a timelimit legyen 900 sec, akkor 890 s-onként nézed (mented) a form tartalmát, ha változott, akkor küldöd a frissítő ajaxot (meg a limonádét :)), ha nem, akkor elment kávézni és így járt.
Ajax-hoz meg használhatsz jQuery-t is, azzal egyszerű, áthidalja neked (többnyire) a böngészők közti különbségeket. Nem olyan nehéz az, tanulj kicsit.
20

pont azt..

Termes · 2013. Aug. 6. (K), 13.07
Pont a kilépést szeretném elekerülni, mert ha a form-ot, ami elég hosszú, félbehagyja a júzer és időközben lejár a munkamenet, akkor az adatbázisba, az azonosító táblába üres sort szúr be.

Egyszerűbb lenne egy ellenőrzést beépíteni az sql futtatás elé, de sajnos túl sok végrehajtó fájl van már a rendszerben, minden kérdőívnek külön-külön, így nem vállalkoznék rá.

Emiatt jönne jól egy sima reset, amivel újraindulna a munkamenet.

A fenti példák nem működtek sajnos, de ezeket már korábban is kipróbáltam. A htaccess-ben is és php-ban is.
php_value session.cookie_lifetime 3600
php_value session.gc_maxlifetime 3600
Egyik sem működik.
22

Nem értetted a lényeget

Pepita · 2013. Aug. 7. (Sze), 01.44
Nekem minden oldalra van timelimit, de ott, ahol ez szükséges (pl. hírszerkesztő adminfelület), ezt hidalom át úgy, hogy egy ajax kérést küldök "fel", ami frissíti a sessiont, így "nem jár le" az érvémyessége. Persze, ha közben pl. változott az IP, akkor kiléptetem, és írok ki üzit, hogy "helló! mentsd ki a form tartalmát magadnak, mert nem fogod tudni postolni! Jelentkezz be újra!". De ez csak IP-változás, vagy más hasonló csúnyaság esetén (pl. időközben arra jogosult letiltotta őt) lép fel. Egyébként meg észre sem veszi, erről az oldalról "elmehet kávézni". Mondjuk az ilyet célszerű azzal is "fűszerezni", hogy változik-e a form, hogy ne menjen tényleg kávézni.
Remélem így már tisztul a kép, bocs de kissé fáradt vagyok.

Szerk.: előbb kell egy jól működő felhasználókezelést felépíteni, utána a többit. Vagy használj egy CMS-t, ami ezeket tudja, bár én a saját programozás híve vagyok, a kész CMS-ekből (kőként Drupal) inkább csak tanulok, ellesek technikákat, stb.
23

Ok

Termes · 2013. Aug. 7. (Sze), 12.09
Köszönöm a hozzászólásokat. Nekilátok. :)

Üdv:
T.
24

Helyes

Pepita · 2013. Aug. 7. (Sze), 19.59
Javaslom a CodeIgniter keretrendszert, kicsi, gyors, forgalmas oldalt is lehet vele csinálni, jól dokumentált, szerintem kezdők is könnyen elsajátítják.
Hátránya (de nekem pl. előny): nincs saját felhasználókezelése, te írsz egyedit, stb., sajnos a "gyári" sessionkezelése szimplán süti (vagy db), tehát van mibe "belenyúlni", ha az alapok már megvannak. De könnyű benne saját osztályokat, helpereket írni, könnyű újrahasznosítható dolgokat megvalósítani, etc.
Szerintem próbáld ki, nekem bejött.