JS klein captcha script
Ik ben bezig met een klein captcha script hij is nog niet helemaal af. Maar als ik hem nu open krijg ik geen getallen te zien op de plek waar ze horen. Ik heb alles 3 keer overgekeken maar zie niks fout. Waarschijnlijk kijk ik er zwaar over heen.
Kunnen jullie misschien kijken wat ik fout heb gedaan ?
Code (php)
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
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
<html>
<head>
<title>
JAVA
</title>
<style>
input {
height:30px;
border:2px solid black;
}
#ingave {
padding:6px;
width:120px;
text-align:right;
}
</style>
<script>
var x,y=0;
function nieuweSom(){
x=Math.round(100*Math.random());
y=Math.round(100*Math.random());
document.getElementById("opgave").innerHTML = x+"+"+y;
document.getElementById("ingave").focus();
}
function ok() {
var oplossing = document.getElementById("ingave").value;
if (oplossing == x+y {
document.getElementById("uitslag").innerHTML = oplossing+' correct';
document.getElementById("uitslag").style.color = "green";
nieuweSom();
} else {
document.getElementById("uitslag").innerHTML = 'Helaas niet goed';
document.getElementById("uitslag").style.color = "red";
}
document.getElementById("ingave").value = "";
document.getElementById("ingave").focus();
}
</script>
</head>
<body style="text-align:center;" onload="nieuweSom();">
<h1>Hoeveel is: <span id="opgave"></span> ?</h1>
<input type="number" value="0" min="0" max="200" id="ingave" />
<input type="button" value="Ok" onclick="ok()" />
<input type="button" value="Nieuwe som" onclick="nieuweSom()" />
<span id="uitslag"></span>
</body>
</html>
<head>
<title>
JAVA
</title>
<style>
input {
height:30px;
border:2px solid black;
}
#ingave {
padding:6px;
width:120px;
text-align:right;
}
</style>
<script>
var x,y=0;
function nieuweSom(){
x=Math.round(100*Math.random());
y=Math.round(100*Math.random());
document.getElementById("opgave").innerHTML = x+"+"+y;
document.getElementById("ingave").focus();
}
function ok() {
var oplossing = document.getElementById("ingave").value;
if (oplossing == x+y {
document.getElementById("uitslag").innerHTML = oplossing+' correct';
document.getElementById("uitslag").style.color = "green";
nieuweSom();
} else {
document.getElementById("uitslag").innerHTML = 'Helaas niet goed';
document.getElementById("uitslag").style.color = "red";
}
document.getElementById("ingave").value = "";
document.getElementById("ingave").focus();
}
</script>
</head>
<body style="text-align:center;" onload="nieuweSom();">
<h1>Hoeveel is: <span id="opgave"></span> ?</h1>
<input type="number" value="0" min="0" max="200" id="ingave" />
<input type="button" value="Ok" onclick="ok()" />
<input type="button" value="Nieuwe som" onclick="nieuweSom()" />
<span id="uitslag"></span>
</body>
</html>
Ik zie getallen en het werkt.
dan is er iets mis met mij browser, dankje voor de snelle reatie!
Dus, hackers schrijven een scriptje dat automatisch nieuwe users gaat registreren, om daarmee automatisch content te spammen.
Het concept van Captcha is toch wel dat de geheime code (wat het ook moge zijn) gegenereerd wordt op de server; achter de schermen.
Je moet vermijden dat een hacker "het systeem" van jouw Captcha kan voorspellen/omzeilen/raden/...
Het systeem dat jij hier op poten zet, doet niet veel moeite om een spammer tegen te houden, lijkt me.
Je hebt op de server geen verificatie-code waarmee jij (de scripter) kan zien of de "nieuwe message" of "nieuwe geregistreerde" verzonden is door een mens is of een bot.
In klassieke captcha wel.
Daar heb je iets als:
Code (php)
Kijk eventueel eens naar mijn reactie op topic over klassieke captcha
http://www.phphulp.nl/php/forum/topic/captcha/76631/#542067
Het zou goed zijn als je je concept herschrijft, zodat de random code op de server wordt gegenereerd en wordt opgehaald met Ajax.
Ik gebruik het scriptje niet ik ben gewoon hier een daar wat aan het uitproberen en ik heb de fout inmiddels gevonden war ergens een: ")" vergeten, maar toch bedankt voor de moeite