Bonjour à tous !
Je viens de me mettre à l'Ajax et jQuery et j'aimerais des conseils pour améliorer mon script.
J'aimerai plus de renseignement sur la fonction error, qu'es qui peut faire échouer la requête ?
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 <p id="error" class="alert alert-error"></p> <p id="suc" class="alert alert-success"></p> <p id="loading">envoie en cours</p> <form id="myform" action="" onsubmit="envoyer(); return false;"> <label>Pseudo</label> <input type="text" id="pseudo" name="pseudo" class="input"/> <br /> <label>Message</label> <input type="text" id="message" name="message" class="input"/> <br /><br /> <input type="button" class="btn-large btn-primary" onclick="envoyer();" value="Valider"/> </form> <script type="text/javascript"> $('#error').hide(); $('#suc').hide(); $('#loading').hide(); function envoyer() { // On lance la requête ajax // type: POST > nous envoyons le message // On encode le message pour faire passer les caractères spéciaux comme + var pseudo = encodeURIComponent($("#pseudo").val()), message = encodeURIComponent($("#message").val()); $.ajax({ type: "POST", url: "res.php", data: "pseudo="+pseudo+"&message="+message, success: function(msg){ // Si la réponse est true, tout s'est bien passé, // Si non, on a une erreur et on l'affiche if(msg == true) { // On vide les zones de texte $("#message").val(''); $("#pseudo").val(''); $('#error').hide(); $("#suc").html('Message envoyé').slideDown("slow"); } else{ $('#suc').hide(); $("#error").html(msg).slideDown("slow"); } }, error: function(msg){ // On alerte d'une erreur alert('Erreur'); // Quand cette evenement se déclenche ? Quel genre d'erreur ? } }); </script>
Page res.php :
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 <?php try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } if(isset($_POST) && !empty($_POST)){ $i = 0; if(isset($_POST['pseudo'])){ $t = strlen($_POST['pseudo']); if($t <= 5){ echo 'Pseudo trop court<br />'; $i++; } } if(isset($_POST['message'])){ $t = strlen($_POST['message']); if($t <= 5){ echo 'Message trop court'; $i++; } } if($i == 0){ $req = $bdd->prepare('INSERT INTO livreor (auteur, content) VALUES(?, ?)'); $req->execute(array($_POST['pseudo'], $_POST['message'])); echo true; } } ?>
Le script marche bien. Je n'ai pas vraiment poussé les vérif côté PHP mais j'aimerai savoir si sur le principe c'est correcte ?
Qu'es que je pourrais améliorer ? Puis-je étendre ce système sur une inscription/connexion par la suite forum & co. ? Pour les questions de sécurité, est-ce qu'il y a des choses supplémentaires à faire si ce n'est vérifier que le JS est activé ?
Merci bien !![]()
Partager