inloggen met ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

S -

S -

23/01/2010 08:28:00
Quote Anchor link
Hoe kan je veilig inloggen met ajax? Op dit moment heb ik gewoon een formulier dat met post de username en pass doorsturen nadat er op een button is gedrukt. Waar moet ik op letten als ik dit met ajax wil doen?
 
PHP hulp

PHP hulp

23/11/2024 10:52:35
 
Joakim Broden

Joakim Broden

23/01/2010 11:23:00
Quote Anchor link
Als mensen javascript uit hebben dat mensen dan niet meer inkunnen loggen?
 
Pepijn

Pepijn

23/01/2010 11:27:00
Quote Anchor link
De inlog gegevens alsnog met PHP controleren
 
Harmen

Harmen

23/01/2010 11:57:00
Quote Anchor link
Het is niet erg dat die data met Javascript wordt verzonden, dat gebeurt bij een normaal formulier ook: <form method="post" action="login.php">

Laat het eerst werken zonder Javascript, en vervolgens met. Met Javascript, bijvoorbeeld jQuery, gaat het zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$('#formulier').submit(function(){
    var url = $(this).attr('action');
    var data = $(this).serialize() + '&methode=javascript';
    $.post(url,  data, function(respons){
        if(respons == 'gelukt') alert('Ingelogd!');
    });
});


En met PHP kijk je of $_POST['methode'] == 'javascript'.
 
Wouter De Schuyter

Wouter De Schuyter

23/01/2010 12:06:00
Quote Anchor link
Mijn login formulier met ajax dat gebruikt maakt van mootools werkt ook net ^^
 
S -

S -

23/01/2010 14:15:00
Quote Anchor link
dus het is net zo veilig..?
ik zag namelijk allerlei scripts die met allerlei javascript encrypties werkte..
 
Wouter De Schuyter

Wouter De Schuyter

23/01/2010 14:53:00
Quote Anchor link
registratie formulier met ajax, http://paradox-productions.net/projects/Scriptz.Be/?p=registreren
en stel dat javascript af staat in de browser werkt het "normaal"
voor zover ik weet is dat even veilig als "normaal"
 
Kasper Heyndrickx

Kasper Heyndrickx

23/01/2010 17:08:00
Quote Anchor link
ik zie dat dit werkt met een GET.
is dit veilig in AJAX?
want ik weet dat bij een login (in normale omstandigheden) een GET method wordt vermeden. (veiligheidsredenen)

en wat een toeval :D
ik ben ook bezig met een login formulier in AJAX :D
maar ik weet niet echt specifiek wat ik moet doen :S

(mijn topic: http://www.phphulp.nl/forum/showtopic.php?cat=5&id=70315&lasttopic=1)

ik heb juist het probleem dat ik niet goed weet hoe ik de gegevens moet in mijn url stoppen, want het is een beetje moeilijk met te weinig aanhalingstekens :S

maar ik heb het gevoel dat ik het bijna heb (:

mvg kasper
 
Kasper Heyndrickx

Kasper Heyndrickx

24/01/2010 21:02:00
Quote Anchor link
Hallo

Het is gelukt. Ik heb het zo opgelost:

javascript:
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
var layerId;

var postValues = new Array();

function loadPost(postName, postLayer){
    postValues[postName] = document.getElementById(postLayer).value;
}

function postAjaxAction(_layerId, _url){
    layerId = _layerId;    
    
    var _parameters = "";
    
    for (var x in postValues){
        var value = postValues[x];
        
        _parameters += x + "=" + value + "&";
    }
        
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null){
        alert ("Browser does not support HTTP Request");
        return;
    }
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("POST",_url,true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", _parameters.length);
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(_parameters);
}

var xmlhttp;

function GetXmlHttpObject(){
    if (window.XMLHttpRequest){
        // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject){
        // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

function stateChanged(){
    if (xmlhttp.readyState==3){
        document.getElementById("ajaxProgress").style.display = 'block';
    }else{
        document.getElementById("ajaxProgress").style.display = 'none';
    }

    if (xmlhttp.readyState==4){
        document.getElementById(layerId).innerHTML = (xmlhttp.responseText);
        //document.getElementById("error");
    }
}


mijn login-form:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<table>
    <tr>
        <td>Gebruikersnaam</td>
        <td><input type="text" value="" name="username" id="username" /></td>
    </tr>
    <tr>
        <td>Paswoord</td>
        <td><input type="password" value="" name="password" id="password" /></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="submit" id="submit" value="<?php echo $_submitText; ?>" name="submit" onclick="loadPost('submit','submit'); loadPost('password','password'); loadPost('username','username'); postAjaxAction('content','applications/login.php');" /></td>
    </tr>
</table>


Bij mij is het mooi gelukt :) en ik ben er blij mee.
Er staan her en der wel een paar foutjes in :s Ik weet niet in hoeverre dit problemen kan opleveren. Dus als iemand hier opmerkingen over heeft, gelieve mij dit te melden.

mvg kasper
 
P Lekensteyn

P Lekensteyn

24/01/2010 21:26:00
Quote Anchor link
GET is afgeraden voor logins, in logbestanden zie je dan die gegevens.
Niet wenselijk.

Die 'encrypties' van jou iswaarschijnlijk md5 (vBulletin gebruikt dit bv).
Deze werkt als volgt: het slaat de wachtwoorden md5-hashed op in de database.
Voor het verzenden maakt javascript al een hash van het wachtwoord.
Dat is beter als plaintext over het internet versturen, maar je hebt md5 databases.
Beter is dus md5-hashen, en het beste is HTTPS.
 
Kasper Heyndrickx

Kasper Heyndrickx

24/01/2010 21:44:00
Quote Anchor link
Er staat hier toch nergens een GET method?
Er wordt enkel gebruik gemaakt van een POST..

En iedereen weet waarschijnlijk ook wel dat een GET method afgeraden wordt.

mvg kasper
 



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.