FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Sitter och bygger ett alldeles för ambitiöst CMS-verktyg (php/MySQL) och vill förhindra redigering av en sida som redan redigeras av en annan användare. Med tanke på min målgrupp så kommer det vara fantastiskt sällsynt att detta inträffar, men jag vill ändå bygga in den funktionaliteten.
Jag vill veta om jag är på rätt spår. Jag tänker mig en tabell (innehållande, i det här fallet, pageId och userId) där det läggs in en post så fort en sida öppnas för redigering. Innan posten läggs in kollar jag om sidans ID redan finns i tabellen. Om den finns med, så meddelas att sidan är låst. Så långt borde det inte vara några problem. Nästa steg är att rensa bort posten när sidan stängs. Här är jag lite osäker, men borde det inte fungera att använda sig av onUnload() och mellanlanda på ett script som tar bort posten? Eller är jag ute och cyklar? Hur brukar ni andra göra? Tack på förhand! |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Medlem
|
Varför använda sig av JS när du ändå "måste" ta hand om $_POST-variablerna när användaren sparar sidan? Smidigast är förmodligen att rensa posten i samma veva som sidan sparas.
En annan sak du behöver fundera på är vad som händer om användaren stänger ner webbläsaren, blir då sidan låst för alltid? Ett sätt att lösa det är att lägga in en tidsvariabel som löper ut efter en viss tid därefter låses sidan upp igen. Ett annat sätt är att du skapar en funktion så att användaren kan forcera en upplåsning av sidan, men då är det samtidigt bra med information om när och av vem som sidan låstes. |
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
Citat:
Fast man är kvar på sidan när man har sparat. Att rensa posten då skulle bli underligt, eftersom man i praktiken fortfarande redigerar. Däremot kommer jag även ha motsvarande "Spara och stäng" eller "Spara och visa" och då rensar jag såklart posten. Citat:
Forcering skulle kunna vara ett alternativ... |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
Det är inte ovanligt med en versionshantering, där den som sparar sidan sist "vinner" och man bygger möjligheten att kunna växla eller slå samman ändringar.
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Jag tycker inte du ska låsa sidan för redigering. Det är en onödigt komplex lösning som kommer ta mer tid att göra (än mitt förslag nedan). Speciellt med tanke på att det kommer vara extremt ovanligt.
Spar istället "senast redigerad"-tiden på sidan. När sidan sedan sparas kontrollerar du om tiden i databasen är samma som när du hämtade sidan för redigering. Om den är det talar du vänligt om för användaren att sidan sparats av någon annan och frågar om han/hon vill ha den senaste versionen och fortsätta editera. Det blir en lösning som går fortare för dig att göra och den obekvämlighet som användaren utförs är minimal eftersom detta kommer ske ytterst sällan. Således den bästa lösningen i förhållande till kostnad. Om det däremot är vanligt att användarna kommer ändra samma sida så är det bättre att låsa sidan. problemet med det är dock hur du ska städa bort låset om användaren tappar kontakt med servern (t.ex. genom att stänga browsern) innan han/hon stänger editeringsläget. Och det är inget kul problem att lösa. Så eftersom du inte behöver denna funktionalitet (just nu med det förmodade användningsmönstret) så ska du strunta i att ens försöka. Gå på den enklare lösningen! |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Medlem
|
Citat:
Fast jag antar att du menar "Om den inte är det talar du..."? Tackar! |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Mycket flitig postare
|
Citat:
|
||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|