webForumDet fria alternativet

Enklaste sättet att förhindra dubbelpostning?

JavaScript

20 svar · 654 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej,

Jag undrar vilket det enklaste sättet är som man förhindrar dubbelpostning när man skickar iväg ett formulär? Råkade precis ut för det på min sida när jag skulle skicka ett PM.

Medlem sedan dec. 20025 871 inlägg
#2

Inaktivera submit-knappen efter att formuläret har submit:ats?

Medlem sedan apr. 20041 597 inlägg
#3

LeonL skrev:

Inaktivera submit-knappen efter att formuläret har submit:ats?

Dum fråga kanske...men hur gör man det?

Medlem sedan dec. 20025 483 inlägg
#4

Hej!

Du kan specificera att det måste gå en viss tid mellan varje PM. Om en person P skickar ett PM klockan 21:36:05 får denne inte skicka ett till samma person förrän, säg, 21:36:15. Du kan ju också jämföra innehållet i dessa PM. Är de olika kan du låta båda gå igenom; är mottagare och innehåll samma som föregående spärrar du det.

Medlem sedan dec. 20025 483 inlägg
#5

lillebror skrev:

Dum fråga kanske...men hur gör man det?

onsubmit="this.elements['namn_på_submitknapp'].disabled=true"
Medlem sedan apr. 20041 597 inlägg
#6

Får fortfarande dubbelposter om jag trycker väldigt fort på "skicka"-knappen. Då har alla samma tidsstämpel.

Denna kod använder jag:

<input type="submit" name="sendmessage" value="Skicka meddelande" onsubmit="this.elements['sendmessage'].disabled=true" />
Medlem sedan juli 20033 147 inlägg
#7

Ska inte onsubmit:en ligga i <form>-taggen? :)

Medlem sedan apr. 20041 597 inlägg
#8

Ehh...jo...det är nog helt rätt....

Jag var för snabb helt enkelt :e

Nu verkar det fungera fint! :birp

Medlem sedan apr. 20041 597 inlägg
#9

Fortsätter i denna tråd då ämnet är identiskt.

Jag skulle lägga till denna kod i den php-fil där användaren skapar ny tråd. Då upptäckte jag att det redan fanns ett onSubmit-element i <form>-taggen. Går det att ha två?

<form action="newthread.php" method="post" name="newthread" onSubmit="return validateNewThread(this)" [B]onsubmit="this.elements['newthread'].disabled=true"[/B]>
Medlem sedan dec. 20025 483 inlägg
#10
onsubmit="this.elements['newthread'].disabled=true; return validateNewThread(this)"

:)

Medlem sedan apr. 20041 597 inlägg
#11

Okey...as simple as that? :) det är alltså som när man skriver vanlig kod. Du kan ha hur många kodsatser som helst i onsubmit-elementet så länge du skiljer de åt med ";"? :OO

Medlem sedan dec. 20025 483 inlägg
#12

Japp! :) Blir det oläsligt kan det dock vara en bra idé att samla dem i en funktion.

Medlem sedan apr. 20041 597 inlägg
#13

Java/Javascript är riktigt användbart! Finns det inga nackdelar med det? Om en användare mot förmodan skulle ha stängt av det så fungerar väl ingenting?

Medlem sedan apr. 20041 597 inlägg
#14

Det hände dock en lustig sak när jag använde koden...

onsubmit="this.elements['newthread'].disabled=true; return validateNewThread(this)"

Nu hoppade den över kontrollen för om rubriken alternativt meddelandefältet var ifyllt med funktionen validateNewThread(this)? Vad beror det på? Ska man byta ordning på de eller? När jag tog bort this.elements['newthread'].disabled=true; så fungerade den tidigare nämnda funktionen som vanligt.

Medlem sedan dec. 20025 483 inlägg
#15

Om en användare stängt av JS fungerar "ingenting", ja. ;) Därför är det viktigt att inte förlita sig på den funktionalitet JS tillhandahåller. Jag kommer främst att tänka på validering av formulär där förfarandet måste implementeras även på serversidan.

Medlem sedan apr. 20041 597 inlägg
#16

När jag implementerar kontrollen på serversidan...gör jag det genom att jämföra tidsstämpel och innehåll i rubrik eller meddelandefält exempelvis?

Medlem sedan jan. 20013 582 inlägg
#17

Peter S skrev:

Om en användare stängt av JS fungerar "ingenting", ja. ;) Därför är det viktigt att inte förlita sig på den funktionalitet JS tillhandahåller. Jag kommer främst att tänka på validering av formulär där förfarandet måste implementeras även på serversidan.

iiiiiiiiiiiiiiiiiiiiii!!

Där dök det med ens upp en hel del jobb....

x(

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#18

Ja, för att två meddelanden skall anses vara identiska måste samtliga fält vara lika. I det här fallet verkar rubrik, meddelandefält och mottagare vara tillräckliga.

Medlem sedan apr. 20041 597 inlägg
#19

devotion skrev:

Där dök det med ens upp en hel del jobb....

Man måste ju ha ett "idiotsäkert" system och tänka på databasintegriteten. Funkar ju inte med en massa dubbelpostningar hit och dit :e

Peter S skrev:

Ja, för att två meddelanden skall anses vara identiska måste samtliga fält vara lika. I det här fallet verkar rubrik, meddelandefält och mottagare vara tillräckliga.

Check! (y) Det blir nästa projekt att implementera det!

Medlem sedan jan. 20013 582 inlägg
#20

lillebror skrev:

Man måste ju ha ett "idiotsäkert" system och tänka på databasintegriteten. Funkar ju inte med en massa dubbelpostningar hit och dit :e

Check! (y)

Helt korrekt... (Y)

Mvh
henrik

273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
139 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
141 ms — ändringar (db)