Ik ben bezig om een CMS systeem te maken, nu wou ik via Ajax de inlogprocedure afhandelen. Dit lukt op zich redelijk, alleen loop ik tegen een fout aan die ik niet helemaal snap. Als ik de responseText van mijn xmlhttp object alert is die leeg, terwijl hij volgens firefbug (een plugin voor firefox) helemaal niet leeg is.
Omdat hij in de alert wel leeg is (als ik de alert in de onreadystatchange neer zet, waar ik ook controleer of de state wel 4 is.) Gaat hij automatisch verder, terwijl dat eigenlijk helemaal niet moet.
Nu geeft het bestand wat de gebruikersnaam en wachtwoord controleert altijd 'false' terug, maar en controleer ik of die true is, anders mag er niet gesubmit worden. Maar dit gebeurt toch?
Hoe kan ik dit oplossen?
De code:
Het probleem is dus dat hij niets controleert (behalfe het gedeelte of alle vakjes niet leeg zijn), en gewoon submit.
Hier een screenshot van firebug in FF.
http://zpaz.strictstudio.nl/firebug.jpg
de functie checkLogin() wordt aangeroepen in de onSubmit van mijn formulier.
Hier een live voorbeeld:
http://82.73.213.158:8000/StrictCMS/login.php
Omdat hij in de alert wel leeg is (als ik de alert in de onreadystatchange neer zet, waar ik ook controleer of de state wel 4 is.) Gaat hij automatisch verder, terwijl dat eigenlijk helemaal niet moet.
Nu geeft het bestand wat de gebruikersnaam en wachtwoord controleert altijd 'false' terug, maar en controleer ik of die true is, anders mag er niet gesubmit worden. Maar dit gebeurt toch?
Hoe kan ik dit oplossen?
De code:
code:
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
| /* Create XMLHTTPRequest Object*/
function makeXmlHttp(){
var xmlhttp = null;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
window.alert("Uw browser ondersteunt het XMLHttpRequest object niet!");
}
}
return xmlhttp;
}
function checkLogin(frm) {
//Show errorbox
document.getElementById('error').style.display = 'block';
//Check if all fields are filled
if(frm.username.value == "" || frm.pass.value == "") { // empty
document.getElementById('error').innerHTML = 'Niet alle velden zijn ingevult.';
return false; }
/*Notify user*/
document.getElementById('error').innerHTML = 'Even gedult...';
var xmlhttp = makeXmlHttp();
xmlhttp.open("GET", "loginCheck.html", true);
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4){
if(xmlhttp.responseText == 'true') { // password and username correct
return true; }
else { //password and username incorrect
document.getElementById('error').innerHTML = 'Gebruikersnaam en of wachtwoord onjuist.';
return false; }
}
}
xmlhttp.send('');
} |
Het probleem is dus dat hij niets controleert (behalfe het gedeelte of alle vakjes niet leeg zijn), en gewoon submit.
Hier een screenshot van firebug in FF.
http://zpaz.strictstudio.nl/firebug.jpg
de functie checkLogin() wordt aangeroepen in de onSubmit van mijn formulier.
Hier een live voorbeeld:
http://82.73.213.158:8000/StrictCMS/login.php
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF