Permalänk

Javascript/asp/form

Hej! håller på att bli galen på det här skriptet... Det fungerade felfritt förut, men sen ändrade jag lite och nu verkar det som att if-satsen körs igen, efter att dom andra funktionerna har körts klart.

Citat:

<script type="text/javascript">
a = 4;

function submitForm()
{
if (a === 0)
{
a = 3;
alert("submitting");
document.inputForm.submit();
}
else
{
alert("Get a life.");
timedCount();
}
}
function refr()
{
a = 0;
alert("Now the form will work again.");
}

function timedCount()
{
alert("timedCount");
t = setTimeout("refr();",5000);
}

</script>

Citat:

<form action="formpage.asp" method="post" name="inputForm">
några inputs till
<a href="javascript: submitForm()"><button>submit</button></a>

hjälp mig, snälla! Finns det något sätt att göra det här på ett bättre sätt? (ja, men finns det någon som kan berätta det för mig?) Servern klarar asp, och det vore bästa sättet att använda det eftersom det då inte går att ta bort koden med t.ex. firebug.

Visa signatur

Pappy :"Backup: Skyddar mot datafel när du på fyllan raderar 200GB pr0n och laddar hem två säsonger teletubbies istället."
Jocke1100 :"Det är väl en mekanisk kylavledning... Typ analog kylpasta..."

Permalänk
Medlem

Förstog inte riktigt problemet, men denna lösning borde funka iallafall.
Dock undrar jag vad du ska med formuläret till? En knapp som är inaktiverad men som aktiveras 5 sekunder efter att man klickat på den första gången?

<script type="text/javascript"> var a = 4; function submitForm(e) { e.preventDefault(); if (a === 0) { a = 3; alert("submitting"); document.inputForm.submit(); } else { alert("Get a life."); timedCount(); } } function refr() { a = 0; alert("Now the form will work again."); } function timedCount() { alert("timedCount"); t = setTimeout("refr();",5000); } </script>

<form action="formpage.asp" method="post" name="inputForm"> <input type="submit" onclick="submitForm(event);" value="submit" />

Permalänk
Skrivet av drewi:

Förstog inte riktigt problemet, men denna lösning borde funka iallafall.
Dock undrar jag vad du ska med formuläret till? En knapp som är inaktiverad men som aktiveras 5 sekunder efter att man klickat på den första gången?

Det finns en bugg i chrome som gör att man kan fylla i en form och sedan klicka på submit som en idiot och därmed skicka in asmånga likadana inlägg, vilket fyller databasen och spammar sidan...

Visa signatur

Pappy :"Backup: Skyddar mot datafel när du på fyllan raderar 200GB pr0n och laddar hem två säsonger teletubbies istället."
Jocke1100 :"Det är väl en mekanisk kylavledning... Typ analog kylpasta..."

Permalänk
Medlem
Skrivet av fille3002:

Det finns en bugg i chrome som gör att man kan fylla i en form och sedan klicka på submit som en idiot och därmed skicka in asmånga likadana inlägg, vilket fyller databasen och spammar sidan...

Då är problemet på serversidan, för om en användare har stängt av JavaScript så kommer han kunna spamma dig likväl förbannat.. alternativt att han inte kan skicka ett jota.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Då är problemet på serversidan, för om en användare har stängt av JavaScript så kommer han kunna spamma dig likväl förbannat.. alternativt att han inte kan skicka ett jota.

Något tips på hur man kan lösa det på serversidan?

Visa signatur

Pappy :"Backup: Skyddar mot datafel när du på fyllan raderar 200GB pr0n och laddar hem två säsonger teletubbies istället."
Jocke1100 :"Det är väl en mekanisk kylavledning... Typ analog kylpasta..."

Permalänk
Medlem
Skrivet av fille3002:

Något tips på hur man kan lösa det på serversidan?

Skapa en session när personen loggar in/klickar på post. I sessionen sparar du en tidsstämpel för när han senast lyckades posta. Om tidsskillnaden mellan servertid och den sparade tidsstämpeln vid nästa post-tillfälle är mindre än säg 5 sekunder, så forwardar du till en sida med felmeddelande ("Spamma inte!").

Kombinera server side-skriptet med javascript på klientsidan för maximal effektivitet.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Skapa en session när personen loggar in/klickar på post. I sessionen sparar du en tidsstämpel för när han senast lyckades posta. Om tidsskillnaden mellan servertid och den sparade tidsstämpeln vid nästa post-tillfälle är mindre än säg 5 sekunder, så forwardar du till en sida med felmeddelande ("Spamma inte!").

Kombinera server side-skriptet med javascript på klientsidan för maximal effektivitet.

Tackar Hur räknar man lättast med tidsstämplar? Att plocka ut sekund och minut var för sig och jämföra?

Visa signatur

Pappy :"Backup: Skyddar mot datafel när du på fyllan raderar 200GB pr0n och laddar hem två säsonger teletubbies istället."
Jocke1100 :"Det är väl en mekanisk kylavledning... Typ analog kylpasta..."