» »

Kako naredit blokado pred veckratnim vpisom istih podatkov?

Kako naredit blokado pred veckratnim vpisom istih podatkov?

Microsoft ::

Recimo, imas neko stran, gor pa gumb. In ker je zakasnitev med brskalnikom in serverjem tako velika, lahko pritiskas tist gumb v nedogled. S tem pa se za vsakic vpisejo recimo neki podatki.

Za zacetek bi lahko naredil JavaScript, ki takoj na zecetku disejbla gumb. Spet lahko disejblas izvajanje skript v brskalniku in ti to nic ne pomaga. Tako, da verjetno ostane se resitev na serverju. Mogoce, da bi za vsak tak pritisk generiral neko nakljucno stevilo, pa primerjal potem to na serverju. Mogoce, da bi si pomagal s kakimi flagi v Session.

Pa me zanima, kako se resit tega problema? Recimo, tule na STju je tako, da ce veckrat pritisnes, te vrze na stran "Nimate pravic".


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

snow ::

En id generiraš za vsak vnos in ko je submitan ga dodaš v bazo. Če je kak vnos s tem idjem že v bazi ga skenslaš. Vidi gor ... nID= ....
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

BigWhale ::

Client dobi cookie z nekim UIDjem, ki se ob submitu na serverju zapise v bazo. V bazi imas to potem kot kljuc in dveh enakih pac ne gre not zapisat. Lahko pa probas se hardcore varianto, da pred submitom po bazi poisces, ce obstaja ze kak vnos z istimi podatki. :P

Microsoft ::

Ce jst tole prav razumem, da gre nekako takole:
- Client dobi cookie
- ta ima v sebi shranjen id 0
- jst 10x kliknem na submit

- podatki se shranijo v neko tabelo
- ob prvem se v tabelo Submit shrani vredost 0

- ob vsakem naslednjem pa se vidi, da je vredost 0 ze zapisana v tabeli Submti, tako da se podatki ne vnesejo

Samo tule potem nevem, kako naprej. Kdaj poslat nazaj v cookie nov id?


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

MasterBlaster ::

Pri vsakem prikazu strani mora klient dobiti nov unique cookie. Pri vpisu pa le čekiraš da s podanim cookijem ni bil narejen še noben vpis. Lahko daš kar unique key constraint nad polje v bazi.
Tk je pa pika .

OwcA ::

Če rabiš dodatno robustnost in varnost generiraš nize naključnih znakov (kot naprimer ST-jev nID) in si shraniš kaj pričakuješ od klienta. Sprejemaš le zahtevke, ki vsebujejo enega izmed pričakovanih nizov. Ko prvič to dobiš kar si pričakoval, pri sebi zbrišeš. Po potrebi uporabljaš to v paru s session ID ali čim podobnim.
Otroška radovednost - gonilo napredka.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nasveti glede API-ja

Oddelek: Programiranje
111177 (717) Arey
»

python in postgresql (strani: 1 2 )

Oddelek: Programiranje
777499 (6400) ZaphodBB
»

Php varen login

Oddelek: Programiranje
203891 (3391) Volk|
»

Malce zahtevnejši SQL stavek včasih narobe SELECT-a

Oddelek: Izdelava spletišč
302142 (1811) Brilko
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
162896 (2614) dmok

Več podobnih tem