Avatar billede avminarm Juniormester
29. september 2009 - 19:01 Der er 8 kommentarer og
1 løsning

Blokere side for andre brugere når den opdateres

Hej

Har et CMS system, men 2 brugere kan samtidig være logget på og kan samtidig opdatere sider i systemet og hvis de så opdaterer DEN samme side er det jo ikke så smart.

har i nogen forslag til hvordan de sider (der er flere forskellige typer: alm. sider, galleri, forum, webshop osv)

brugere er logget in via sessions

alle input er velkomne
Avatar billede mall Nybegynder
29. september 2009 - 20:04 #1
Jeg har ingen forstand på det.. Kun en tanke..
Men hvis du via mysql registrerer hvilken IP man logger på med.. Og så tjekker om det er den samme IP som laver ændringer ved tryk på f.eks. "Edit", så kan man vel udskrive en fejl hvis det ikke er den samme..?
Avatar billede tjaz Nybegynder
29. september 2009 - 21:09 #2
Avatar billede stalle Nybegynder
30. september 2009 - 12:55 #3
Lav en kolonne i din side-tabel.
Sæt værdien til TRUE så snart der er en der redigere i den.
Lav oversigten således, at siden ikke kan åbnes i editoren, så længe der er en der er igang med at rode med den.

Den udvidet metode kunne være, og lave det sådan, at bruger id'et for personen der redigere siden, bliver gemt i kolonnen.
Så kan oversigten laves sådan, at det vises hvem der redigere siden. Når vedkommende lukker siden, og er færdig med at redigere, tømmes feltet selvfølgelig.
Avatar billede avminarm Juniormester
30. september 2009 - 23:04 #4
tak for input :-)

tjaz>> jeg er ikke helt sikker på hvordan det kan implementeres - jeg kan godt se det er den ide jeg søger - men hvordan det rentpraktisk lader sig gøre??

stalle>> ja noget iden stil kunne nok virke

Mall>> måske, men er ikke vild med en IP løsning
Avatar billede j4k0b Nybegynder
01. oktober 2009 - 08:59 #5
stalle: hvordan kan du så være sikker på at brugeren forlader siden? Du må aldrig være afhængig af eksempelvis JavaScripts til at klare det for dig, risikoen for at noget går galt er for stor.

avminarm: En meget simpel løsning er:

Når en bruger går ind for at redigere en side, så laver du et skjult input-felt i formularen med et tidsstempel på hvornår han åbnede siden (altså hvornår han begyndte at redigere siden). Tilføj et datetime/timestamp felt (med dato og klokkeslet) i din tabel med sider, som definerer hvornår siden sidst blev redigeret. Når en bruger trykker gem, så samenligner du tidsstemplet fra formularen med hvornår siden sidst blev redigeret. Simpelt nok; hvis tidsstemplet fra formularen er fra FØR siden sidst blev redigeret, ja, så er der nogen andre der har gemt siden EFTER brugeren begyndte at redigere den, og så kan du give ham en besked herom. Ellers skal siden jo bare gemmes.
Avatar billede j4k0b Nybegynder
01. oktober 2009 - 09:03 #6
og når jeg skriver at risikoen er for stor med Javascript, så er det en generel regel: dit program må ikke være kritisk afhængig af javascript, da du ikke en gang kan være sikker på at klienten udfører koden
Avatar billede avminarm Juniormester
03. oktober 2009 - 17:37 #7
j4k0b>> det kunne være en løsning, helst ville jeg dog at siden var spærret med den blev redigeret
Avatar billede avminarm Juniormester
22. oktober 2009 - 16:52 #8
nå det må blive noget med et dato/kl felt i DB og i formularerne - æv der er en del omkodning!!

Smid svar hvis i ønsker points
Avatar billede avminarm Juniormester
20. august 2010 - 19:33 #9
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester