Bonjour,
J'ai réalisé une Captcha en Ajax et Javascript.
Avec une série de alert, j'ai pu comprendre que Javascript allait trop vite par rapport a mon Ajax, et j'aurais voulu trouver un moyen de "freiner" JS. Voici mon Code :
captcha.js
Et la vérification de mon formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 // CREATING THE REQUEST function createRequestObject() { try { xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { alert('Sorry, but your browser doesn\'t support XMLHttpRequest.'); } return xmlhttp; } var http = createRequestObject(); var sess = createRequestObject(); // IMAGE REFRESHING function refreshimg() { var url = 'class/captcha/image_req.php'; dorefresh(url, displayimg); } function dorefresh(url, callback) { sess.open('POST', 'class/captcha/newsession.php', true); sess.send(null); http.open('POST', url, true); http.onreadystatechange = callback; http.send(null); } function displayimg() { if(http.readyState == 4) { var showimage = http.responseText; document.getElementById('captchaimage').innerHTML = showimage; } } // SUBMISSION var capt; function check() { var submission = document.getElementById('captcha').value; var url = 'class/captcha/process.php?captcha=' + submission; this.docheck(url, displaycheck); cfr = capt; return cfr; } function docheck(url, callback) { http.onreadystatechange = callback; http.open('GET', url, true); http.send(null); return false; } function displaycheck() { try { if((http != null) && (http.readyState == 4)) { if (http.status == 200) { if(http.responseText == 1) { capt = 1; document.getElementById('captcha').className = 'right_element'; return true; } else { capt = 0; document.getElementById('captcha').className = 'wrong_element'; return true; } } } else { return true; } } catch(e) { alert(e); } }
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function frm_comment() { var form = true; var ce = check(); if (trim(document.forms["frm"].elements["captcha"].value) == "") { document.getElementById('captcha').className = 'wrong_element'; form = false; } else { alert(ce); if (ce != 1) { form = false; } } return form; }
Cordialement
Partager