Aucun des bouts de code fournis par hades ne permet de dire que l'utilisation de l'une ou l'autre de nos regexp fonctionne ou non, puisque dans le premier cas :
L'expreg est fausse et mal utilisée (tiret, opérateur !).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if ( ! preg_match('#[^ \n\r\t\'àáâóôèéêëçîïùûü.;,-_a-zA-Z0-9]#', $comments) || strlen($comments)>300) die (" Il y a des caractéres non accepté dans votre message ou votre message dépasse les 300 caractéres, veuillez recommencer ");
Dans le second cas :
hades a recopié telle quelle la proposition de SpaceFrog en s'interrogeant sur l'utilité du 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $yesReg="#^[a-zA-Z0-9\?.!;,'\(\)éèàùâêîôû\- ]+$#"; $texte="ererre"; echo preg_match($yesReg,$texte);
A moins que ce soit moi qui soit dans le brouillard (météorologiquement c'est le cas), je continue de penser que :
peut fonctionner, au moins pour la partie contrôle des caractères saisis dans le message.
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 <?php // identification login session_start(); if (!isset($_SESSION['login'])) { header ('Location: index.php'); exit(); } $login=htmlentities(trim($_SESSION['login'])); // envoi apres validation vers la page membre..................................................................... include("chiens.inc"); // traitement// // Connexion au serveur mysql $connect = mysql_connect($host, $user,$password) or die('Impossible de se connecter : ' . mysql_error()); // sélection de la base de données mysql_select_db($database, $connect); // si un champ est vide, on affiche le message d'erreur if (empty($_POST['comments'])) { $message = "Erreur. Le champs Message doit être obligatoirement remplis :<br/><br/>Votre message<br/>"; echo "<font color='#FF0000'>$message</font><BR>"; // sinon c'est ok } else { $comments= ( $_POST['comments'] ); // Vérification de la validité des caractères saisis dans le message if ( preg_match('#[^ \n\r\t\'àáâóôèéêëçîïùûü.;?!,\-_a-zA-Z0-9]#', $comments) || strlen($comments)>300) die (" Il y a des caractéres non acceptés dans votre message ou votre message dépasse les 300 caractéres, veuillez recommencer "); // on enleve les slashes et espace inutiles foreach($_POST as $index => $valeur) { $$index = stripslashes(trim($valeur)); } foreach($_POST as $index => $valeur) { // utilisez addslashes() au lieu de mysql_real_escape_string() // si vous n'etes pas sur PHP5 ou si la fonction pose probleme $$index = mysql_real_escape_string(trim($valeur)); } mysql_query("UPDATE membre SET comments='$comments' WHERE login='$login'") or die(mysql_error()); //Fermeture sql mysql_close (); header("Location: compteP.php"); }
Fred
Partager