Autor | Zpráva | ||
---|---|---|---|
Prefin Profil |
#1 · Zasláno: 15. 4. 2013, 10:58:42
Ahojda všichni.
Objevil se mi po půlo roce běhu webu jeden problémek, který se týká jednoznačné identifikace návštěvníka na webu a následné uložení poptávky pomocí session. Při vstupu do formu se kontroluje existence if(!$_SESSION["identifikacni_kod"]) { // Nastavení identifikace klienta $_SESSION["identifikacni_kod"] = md5(time().rand(1,1000)); } Poté se tato $ použije jako základní identifikační hodnota při vložení poptávky. Když poptávka není úspěšná, tak se dá při jedné navštěvě webu opakovat a script rozezná její úpravu a provede místo vložení update. Úmyslně nemám připravené řešení pro update poptávky z pozdější návštěvy webu - nejde to (tedy myslel jsem). Při další návštěvě se vygeneruje nová session a tímto se vkládá nová poptávka. Po půl roce se mi tu objevil případ, kdy návštěvním vložil jeden den poptávku a následujících několik dní ji vkládal podle logování procesů ještě několikrát ale se stejnou session - tedy v podstatě upravoval stávající, což by ale nemělo jít. Script obsluhující vložení či update db mám tisíckrát testovaný,tam problém není. Napadá správně, že se to vyřeší nastavením expirace? define('PLATNOST', 60*60); session_set_cookie_params(PLATNOST); session_cache_expire(ceil(PLATNOST/60)); session_start(); ... if(!$_SESSION["identifikacni_kod"]) { // Nastavení identifikace klienta $_SESSION["identifikacni_kod"] = md5(time().rand(1,1000)); } |
||
Prefin Profil |
#2 · Zasláno: 15. 4. 2013, 12:00:05
Už jsem to vyřešil porovnáním existence řetězce md5 v db a přiřazením nového.
|
||
Časová prodleva: 11 let
|
0