redirect met ajax na inloggen
Ik ben bezig met een inlog systeem met ajax, als je wachtwoord en gebruikersnaam in typt dat je dan verstuurd en controleerd of het klopt, Dat doet het allemaal alleen het doorsturen lukt niet,
Ik heb er over opgezocht en iemand zei dat je zo kan doen
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function checkLogin(response)
{
if (response == "success") {
window.location='?pagina=home';
}
}
{
if (response == "success") {
window.location='?pagina=home';
}
}
dat heb ik gedaan, heb er dit van gemaakt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function inloggen(){
htmlRequest = ajaxFunction();
if (htmlRequest==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest.onreadystatechange = function(){
if(htmlRequest.readyState == 4){
checkLogin(htmlRequest.responseText);
}
}
var naam = document.forms.inlogform.gebruikersnaam.value;
var password = document.forms.inlogform.passwoord.value;
htmlRequest.open('POST', 'ajax/inloggen.php',true);
htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
htmlRequest.send('gebruikersnaam='+naam+'&password='+password);
}
htmlRequest = ajaxFunction();
if (htmlRequest==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest.onreadystatechange = function(){
if(htmlRequest.readyState == 4){
checkLogin(htmlRequest.responseText);
}
}
var naam = document.forms.inlogform.gebruikersnaam.value;
var password = document.forms.inlogform.passwoord.value;
htmlRequest.open('POST', 'ajax/inloggen.php',true);
htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
htmlRequest.send('gebruikersnaam='+naam+'&password='+password);
}
maar zodra login succesvol is dat er dan nogsteeds niks gebeurt,
ik heb der ook een else bij gezet met een alert er en wat respons is, Dat is wel succesvol.
Maar hoe komt het dan dat hij de if niet doet
Alvast bedankt voor het helpen
Groeten
Nomis
Gewijzigd op 01/01/1970 01:00:00 door Simon Kroes
kun je even [script] en [/script] gebruiken aub?
het is JAVASCRIPT en niet PHP
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function checkLogin(response)
{
if (response == "success") {
window.location='?pagina=home';
}
}
{
if (response == "success") {
window.location='?pagina=home';
}
}
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function inloggen(){
htmlRequest = ajaxFunction();
if (htmlRequest==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest.onreadystatechange = function(){
if(htmlRequest.readyState == 4){
checkLogin(htmlRequest.responseText);
}
}
var naam = document.forms.inlogform.gebruikersnaam.value;
var password = document.forms.inlogform.passwoord.value;
htmlRequest.open('POST', 'ajax/inloggen.php',true);
htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
htmlRequest.send('gebruikersnaam='+naam+'&password='+password);
}
htmlRequest = ajaxFunction();
if (htmlRequest==null){ // If it cannot create a new Xmlhttp object.
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest.onreadystatechange = function(){
if(htmlRequest.readyState == 4){
checkLogin(htmlRequest.responseText);
}
}
var naam = document.forms.inlogform.gebruikersnaam.value;
var password = document.forms.inlogform.passwoord.value;
htmlRequest.open('POST', 'ajax/inloggen.php',true);
htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
htmlRequest.send('gebruikersnaam='+naam+'&password='+password);
}
Gewijzigd op 01/01/1970 01:00:00 door Simon Kroes
Volgens mij moet je onreadystatechange pas aanpassen nadat je open hebt aangeroepen. Bij open wordt het XHR object opnieuw geïnitialiseerd, en er zullen vast implementaties van XHR zijn die daarbij de waarde van onreadystatechange weggooien.
Die succes is toch puur om te kijken of de request goed ging? Volgens mij heb je die onreadystate hier niet nodig. Immers, klopt de login, krijg je toch een redirect. Dus kun je die ook in je validatie script stoppen.
edit: let trouwens wel even op dat je validate-scriptje geen spaties voor of na 'success' terugstuurt. Dat is echt zo'n valkuil waar je gemakkelijk in kan vallen.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Onreadystate is wel nodig, Als hij namelijk nog geen status terug heeft gehad dan krijg je een fout melding,
Ik heb geprobeerd om het zelfde respons, dus zo
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function checkLogin(response)
{
if (response == response) {
window.location='?pagina=home';
}
}
{
if (response == response) {
window.location='?pagina=home';
}
}
dan gaat doet hij het nog niet dus ik denk dat het aan response licht..?
maar als ik een else van maak en dan een alert met response der in krijg ik wel succesvol dus zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function checkLogin(response)
{
if (response == response) {
window.location='?pagina=home';
} else {
alert(response);
}
}
{
if (response == response) {
window.location='?pagina=home';
} else {
alert(response);
}
}
Gewijzigd op 01/01/1970 01:00:00 door Simon Kroes
Ik weet niet hoe, Maar het is al gelukt! in iedergeval heel erg bedankt!