Bonjour à tous !

Je viens de me mettre à l'Ajax et jQuery et j'aimerais des conseils pour améliorer mon script.

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>
J'aimerai plus de renseignement sur la fonction error, qu'es qui peut faire échouer la requête ?

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 !