IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Autorisation des accents et autres caractéres [RegEx]


Sujet :

Langage PHP

  1. #21
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Manifestement le problème ne provient pas de la regexp, mais plutot d'envoi de header.
    Le code que j'ai donné au dessus est parfaitement fonctionnel.
    Le problème est ailleurs
    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 :
    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 ");
    L'expreg est fausse et mal utilisée (tiret, opérateur !).
    Dans le second cas :
    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);
    hades a recopié telle quelle la proposition de SpaceFrog en s'interrogeant sur l'utilité du 1.
    A moins que ce soit moi qui soit dans le brouillard (météorologiquement c'est le cas), je continue de penser que :
    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");
    }
    peut fonctionner, au moins pour la partie contrôle des caractères saisis dans le message.
    Fred

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    je viens de tester ton code fred...et si j'ecris des lettre avec accents ..j'ai le message d'erreur des caractéres non conforme mais plus le "header" genant ^^

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    je crois avoir trouve la solution voici ce que j'aie cris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $comments= ( $_POST['comments'] ); 
            // Vérification de la validité des caractères saisis dans le message
    	header('Content-type: text/html; charset=utf-8');
     
    	if (!preg_match('#[^ <> *+/]#', $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 ");
    je precise uniquement les caractéres interdit au lieu de preciser les autorisé..lol
    c'est tous con et ca marche ...pour l instant ..ptdr..

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. affichage des accents et caractères spéciaux
    Par sarahG dans le forum Langage
    Réponses: 7
    Dernier message: 05/06/2008, 17h37
  2. Problème de caractères avec des accents
    Par xianxian620 dans le forum Requêtes
    Réponses: 5
    Dernier message: 13/05/2008, 17h53
  3. Réponses: 4
    Dernier message: 26/11/2007, 12h25
  4. Fonction à utiliser pour remplacer les accents et autres caractères
    Par Christophe Charron dans le forum Langage
    Réponses: 2
    Dernier message: 05/08/2007, 12h50
  5. Perte des accents et autres caractères spéciaux.
    Par pacific dans le forum Coldfusion
    Réponses: 1
    Dernier message: 19/07/2007, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo