Avatar billede Slettet bruger
16. juni 2007 - 11:32 Der er 16 kommentarer og
1 løsning

Checkbox - værdi må ikke kunne ændre

Hej

Jeg har en checkbox:
<input type="checkbox" name="cat1" value="1" checked>Kategori 1

Checkboxen er checked, fordi brugeren har en vare i kategori 1. Hvordan gør jeg således brugeren ikke kan ændre at checkboxen er checked?

Jeg havde forestillet mig at bruge readonly, men brugeren kan stadigvæk fjerne krydset i checkboxen, hvilket jeg synes er lidt forvirrende.

disabled kan ikke bruges, idet jeg har brug for at få værdien af checkboxen med over i min form-validering.

Det er vel muligt at lave noget onclick?

Når brugeren fjerner krydset, kommer der en boks der fortæller at kategorien ikke kan fravælges, og når brugeren klikker "OK" i boksen, er kategorien stadigvæk valgt?
Avatar billede erikjacobsen Ekspert
16. juni 2007 - 12:02 #1
Hvad med disabled - viser brugeren at den ikke kan ændres.
Så må du på anden vis sørge for værdien. Du kunne eet af to:
1) Gemme den i et hiddenfelt - men en hacker kan ændre det
2) I en sessionsvariabel.
Avatar billede Slettet bruger
16. juni 2007 - 12:10 #2
Havde overvejet et hiddenfelt, men som du selv skriver er det ikke særlig sikkert.

En sessionsvariabel er ikke hensigtsmæssig for mig her, idet jeg ville skulle kode for meget om i min validering af formen, hvilket jeg gerne vil undgå, såfremt et lille javascript muligvis kan gøre at jeg kun skal ændre i min kode ét sted.
Avatar billede Slettet bruger
16. juni 2007 - 13:58 #3
Fik det løst ved at bruge:

<input type="checkbox" name="cat1" value="1" checked onClick="alert('Forbudt'); return false\" readonly>Kategori 1

Readonly sikrer at brugeren ikke kan gemme ændringer i checkboxen, selvom vedkommende disabler javascript.
Avatar billede Slettet bruger
16. juni 2007 - 13:58 #4
erikjacobsen...> Læg et svar. Vil gerne give dig halvdelene af pointene for din deltagelse i spørgsmålet.
Avatar billede erikjacobsen Ekspert
16. juni 2007 - 14:09 #5
Ja, en hacker kan også ændre indholdet af et checkfelt. Det med "disabled" er jo altså for at fortælle brugeren hvad der er muligt på siden - det er li'som den måde, der er standard for den slags. Hvis du vil bruge din metode, så håber jeg du finder en lidt bedre besked ;)    Og ingen point til mig, tak. Samler ikke på dem.
Avatar billede Slettet bruger
16. juni 2007 - 14:24 #6
Bare rolig, beskeden kommer til klart og tydeligt at fortælle brugeren hvorfor vedkommende ikke kan ændre i lige netop denne checkbox.

Så vidt jeg ved er det ikke muligt for en hacker at ændre siden, idet jeg kører nogle checks på at brugeren kommer fra den rigtige adresse, samt at siden har været kørt, hvilket ikke vil være opfyldt hvis brugeren spoofer fra en side på vedkommendes egen computer.
Avatar billede erikjacobsen Ekspert
16. juni 2007 - 15:04 #7
Ork jo - det er intet problem for en hacker. Vedkommende behøver jo ikke ligefrem bruge en browser ;)  Hvis det faktisk er vigtigt, skal du have mere check på sikkerhed.
Avatar billede Slettet bruger
16. juni 2007 - 15:13 #8
Min sikkerhed er primært bygget op omkring sessions-variabler og cookies. De kan selvfølgelig omgåes, men det er aldrig noget der er 100% sikker.
Avatar billede roenving Novice
17. juni 2007 - 02:27 #9
Prøv i adresselinjen, når du er inde på siden, at skrive:

java script:document.getElementsByName("cat1")[0].checked=false;void(0);
Avatar billede Slettet bruger
17. juni 2007 - 14:31 #10
roenving...> Den tillader at krydset bliver fjernet, men værdien bliver stadigvæk ikke sendt med til min formvalideringsside pga. readonly.
Avatar billede olebole Juniormester
18. juni 2007 - 11:32 #11
<ole>

java script:document.getElementsByName("cat1")[0].readonly=false;void(0);

Der er _intet_, der er sikkert ved en side i en browser! Alle form-elementer kan ændres så let som ingenting  =)

/mvh
</bole>
Avatar billede Slettet bruger
18. juni 2007 - 12:28 #12
Okay, så har jeg også lært noget i dag :)
Avatar billede olebole Juniormester
18. juni 2007 - 12:56 #13
- og du kan lære endnu mere:
    http://www.dengodekode.dk/bm_artikel.html

Således er mine 'bruger-tags' i første indlæg i en E-tråd altid indsat i tekstfeltet nedenfor ved hjælp en Favorit, jeg har liggende i min Hyperlinks-bar i IE  ;o)
Avatar billede roenving Novice
18. juni 2007 - 15:41 #14
-- du er aldrig nået til brugen af RegExp'en i split-tingen på keywords ?-)
Avatar billede Slettet bruger
18. juni 2007 - 21:28 #15
roenving... >Ehm, hvis det er til mig, så øhhh?
Avatar billede roenving Novice
18. juni 2007 - 22:08 #16
Nej, det var til oles artikel, hvor vi tidligere har diskuteret muligheden af at bruge en regexp til at splitte i stedet for at splitte med det ene eller andet !-)
Avatar billede olebole Juniormester
19. juni 2007 - 11:31 #17
Nej, jeg har været lidt splittet mellem andre ting på det sidste  ;D
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