[OPGELOST] Maximaal 100 met javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Racoon smasher

racoon smasher

28/05/2014 12:47:05
Quote Anchor link
Ik ben momenteel bezig met een beveiliging met javascript omdat naar mijn gevoel fijner werkt en ik dit toch ook wil oefenen.

nu zit ik met het probleem dat ik wil dat er maximaal tot 100 ingevoerd kan worden. er zit al een beveiliging in van max 3 characters en een beveiliging van alleen cijfers, maar het is nu nog wel mogelijk om bijvoorbeeld getallen boven de 100 in te voeren zoals 101.

Weet iemand hoe je dit met javascript tegen gaat en dan een melding weergeeft?

Huidige code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<script>
function validateForm()
{
    var a=document.forms["personalia"]["b_followed_links"].value;
    var b=document.forms["personalia"]["b_internal_links"].value;
    var atpos=b.indexOf("@");
    var dotpos=b.lastIndexOf(".");
    
    if (a==null || a=="")
    {
        alert("Er is niks ingevuld bij followed!");
        return false;
    }
    else if (IsNumeric(a)==false)
    {
        alert("Het veld followed hoort alleen uit cijfers te bestaan, dus niet uit rare tekens of letters!");
        return false;
    }
    else if (a.length <= 0 || a.length >= 4)
    {
        alert("Vul minimaal 1 cijfer tot maximaal 3 cijfers in bij followed. als het 0 is vul dan 0 nul!");
        return false;
    }
    
    if (b==null || b=="")
    {
        alert("Er is niks ingevuld bij internal!");
        return false;
    }
    else if (IsNumeric(b)==false)
    {
        alert("Het veld internal hoort alleen uit cijfers te bestaan, dus niet uit rare tekens of letters!");
        return false;
    }
    else if (b.length <= 0 || b.length >= 4)
    {
        alert("Vul minimaal 1 cijfer tot maximaal 3 cijfers in bij internal. als het 0 is vul dan 0 nul!");
        return false;
    }
}

// check for valid numeric strings  
function IsNumeric(strString)
{
    var strValidChars = "0123456789";
    var strChar;
    var blnResult = true;
    
    if (strString.length == 0) return false;
    
    // test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++)
    {
        strChar = strString.charAt(i);
        
        if (strValidChars.indexOf(strChar) == -1)
        {
            blnResult = false;
        }
    }
    
    return blnResult;
}


var input = document.getElementById('txtWeight');  

input.addEventListener('change', function(e)
{
    var num = parseInt(this.value, 10),
    min = 0,
    max = 1;
    
    if (isNaN(num))
    {
        this.value = "";
        return;
    }
    
    this.value = Math.max(num, min);
    this.value = Math.min(num, max);
});
</script>


Toevoeging op 28/05/2014 12:47:56:

Sorry voor twee keer posten, ik weet niet hoe dit is gebeurt, klikte maar 1 keer op de submit!
Gewijzigd op 28/05/2014 13:47:28 door Racoon smasher
 
PHP hulp

PHP hulp

19/04/2024 14:12:34
 
Obelix Idefix

Obelix Idefix

28/05/2014 12:53:05
Quote Anchor link
Racoon smasher op 28/05/2014 12:47:05:
Ik ben momenteel bezig met een beveiliging met javascript omdat naar mijn gevoel fijner werkt en ik dit toch ook wil oefenen.

Beveiligen doe je niet met (alleen) javascript. Daarvoor is het te onveilig/onbetrouwbaar.

Gaat naar mijn idee niet om je gevoel, maar om de betrouwbaarheid van hetgeen wordt ingevoerd door de gebruiker.

Je kunt toch de waarde van een veld opvragen en controleren of die <0 of > 100 is?
Kan me niet zo goed voorstellen dat Google daar niet een voorbeeld van heeft.
Gewijzigd op 28/05/2014 12:56:20 door Obelix Idefix
 
Racoon smasher

racoon smasher

28/05/2014 12:56:12
Quote Anchor link
sws is het cms afgeschermt voor buiten dus ik gebruik nu liever wel even javascript.

en uhm er staat heel veel info op google dus om te vinden wat je zoekt is niet altijd even makkelijk
Gewijzigd op 28/05/2014 12:57:02 door racoon smasher
 
Obelix Idefix

Obelix Idefix

28/05/2014 12:57:55
Quote Anchor link
Ook "binnen" kan men, bewust of onbewust, de boel belazeren.

Wat als iemand javascript uit heeft staan? Komt steeds minder voor, maar het kan nog steeds.
Geen controle?!?!
Gewijzigd op 28/05/2014 12:58:06 door Obelix Idefix
 
Racoon smasher

racoon smasher

28/05/2014 13:24:36
Quote Anchor link
De metingen (wat dit script maakt) worden vervolgens gecontroleerd door de afdelings manager en dan kan die wel zien of het goed is of niet... en bij niemand hier staat javascript uit.

is er nog iemand met een antwoord?
 
Obelix Idefix

Obelix Idefix

28/05/2014 13:30:18
Quote Anchor link
Obelix en Idefix op 28/05/2014 12:53:05:
Je kunt toch de waarde van een veld opvragen en controleren of die <0 of > 100 is?
Kan me niet zo goed voorstellen dat Google daar niet een voorbeeld van heeft.
 
Racoon smasher

racoon smasher

28/05/2014 13:32:08
Quote Anchor link
als ik daar iets op zoek dan krijg ik scripts dat die checkt of het boven de 100 tekens is, maar het gaat erom dat het niet boven het getal 100 komt, dus geen 101
 
Michael -

Michael -

28/05/2014 13:33:37
Quote Anchor link
Obelix gaf het antwoord al. Gewoon geel simpel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(b <= 100) return true;

Javascript is ideaal als realtime validatie. Javascript kan sneller een foutmelding weergeven dan eerst een POST afwachten. 'Nadeel', maar een vereiste is dat je de zelfde validatie ook in PHP moet doen. Javascript is heel makkelijk te manipuleren en dus totaal onbetrouwbaar.
'sws is het cms afgeschermt voor buiten'* zijn geen geldige regels om niet aan validatie/beveiliging te doen. Er zijn altijd grapjassen bij (:-)) of het gebeurd onbedoeld.

* sws bestaat niet.
afgeschermd is met een d.

Toevoeging op 28/05/2014 13:35:24:

Om trouwens zeker te weten dat het een int is zou ik het zo doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if(parseInt(b) <= 100) {
    return true;
}
 
Racoon smasher

racoon smasher

28/05/2014 13:42:53
Quote Anchor link
Bedankt voor het helpen allebei.

Tuurlijk is het altijd mogelijk dat er grapjassen zijn, maar we werken hier met mensen die hun werk serieus nemen en mocht het zo zijn dat er wordt gegrapt of er iets mis gaat, dan hebben we hier meerdere mensen die het binnen 5 minuten kunnen oplossen.

Aangepast en gecheckt of werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
else if(parseInt(b) > 100)
{
    alert("Je kan alleen getallen tussen de 0 t/m 100 invullen!");
    return false;
}


Het werkt :)
 
Michael -

Michael -

28/05/2014 13:48:21
Quote Anchor link
Waarom een alert? Verschrikkelijk die dingen (gelukkig kun je die tegenwoordig uitzetten).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<div id="notes">
</div>
<script>
if(parseInt(b) > 100)
{
    document.getElementById('notes').innerHTML = "Je kan alleen getallen tussen de 0 t/m 100 invullen!";
    return false;
}
</script>
 
Racoon smasher

racoon smasher

28/05/2014 14:40:04
Quote Anchor link
Ja thanks voor de tip, maar dit willen ze zo :P
Gewijzigd op 28/05/2014 14:40:16 door racoon smasher
 
Michael -

Michael -

28/05/2014 14:42:17
Quote Anchor link
> Ja thanks voor de tip, maar dit willen ze zo :P

Dan moet je zeggen dat ze niet in de vorige eeuw moeten blijven hangen ;-)
 
Racoon smasher

racoon smasher

28/05/2014 14:44:03
Quote Anchor link
Zal ik doen, ik bewaar sws alle tips, want moet in deze zomer vakantie nieuw cms bouwen en daar ga ik overal fout afhandeling in stoppen en mysqli enzovoort, want dat cms moet op en top veilig zijn, dus dat gaat een zware klus worden.
 
Michael -

Michael -

28/05/2014 14:49:07
Quote Anchor link
> op en top veilig

Nou succes dan :-) Ik zou dan niet kiezen voor MySQLi, maar voor PDO met prepared statements. Dat is veiliger.
Als je je verveelt in de zomer kun je je Nederlands nog wat verbeteren ;-). 4 fouten in één zin is best knap.
 
Racoon smasher

racoon smasher

28/05/2014 14:54:33
Quote Anchor link
Me Nederlands is uitstekend, maar aangezien dit geen sollicitatie brief is typ ik gewoon snel en let ik niet op typ fouten xD ben gewoon een Nederlander btw.

Ik heb trouwens totaal geen verstand van PDO.
Gewijzigd op 28/05/2014 14:54:44 door racoon smasher
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.