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

PHP & Base de données Discussion :

Méthode POST : caractères spéciaux [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut Méthode POST : caractères spéciaux
    Bonjour, j'ai déjà évoqué ce problème dans la partie MySQL croyant que ça venait de là mais finalement les conclusion mènent à penser que la méthode POST est en cause.
    Voici le problème :
    J'ai un formulaire XHTML qui envoie par méthode POST du texte dans une page PHP, mais dans le texte récupéré dans cette page certains caractères spéciaux sont convertis en équivalent HTML.

    Voici les codes utilisés :

    Le formulaire XHTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form method="post" action="./valide_livredor.php"><p class="formulaire">
    	<label for="pseudo">Votre pseudo :</label>
    	<input type="text" id="pseudo" name="pseudo" value="" size="30" /> <br />
     
    	<label for="email">Votre email :</label>
    	<input type="text" id="email" name="email" value="" size="30" /> <br />
     
    	<label for="texte">Votre texte :<br /></label>
    	<textarea id="texte" name="texte" cols="40" rows="8"></textarea> <br />
     
    	<input class="bouton" type="reset" name="annule" value="Effacer" />
    	<input class="bouton" type="submit" name="valide" value="Envoyer" />
    </p></form>
    Et le code php dans l'autre page :
    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
    if($_POST['pseudo'] == "")
    	echo "Erreur : Vous n'avez pas indiqu&eacute; de pseudo";
    else if($_POST['texte'] == "")
    	echo "Erreur : Vous n'avez pas &eacute;crit de message";
    else {
    	$texte = $_POST['texte'];
    	echo "<p>Texte brut : $texte </p>";
    	$texte = strip_tags($texte);
    	echo "<p>Texte filtre : $texte </p>";
    	$valeurs = '\''.$_POST['pseudo'].'\',\''.$_POST['email'].'\',\''.$texte.'\'';
    	$cmd = "INSERT INTO db_livredor(pseudo,email,texte,date) VALUES($valeurs,NOW())";
    	if($result = mysql_query($cmd))
    	{
    		echo "Votre message a bien &eacute;t&eacute; enregistr&eacute;<br /><br />";
    		echo "<a href=\"./livredor.php\">Retour</a><br />";
    		echo "(redirection automatique)";
    	} else
    		echo "Erreur de requ&ecirc;te de base de donn&eacute;es.";
    }
    Les deux echo de test ont donné pour ce message test :
    Test <br>
    é è à ç ù
    ce résultat dans le code source (de l'affichage de la page php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p>Texte brut : Test <br>
    é & #232; & #224; ç & #249; </p>
    <p>Texte filtre : Test 
    é & #232; & #224; ç & #249; </p>
    (sans les espaces après le &)

    Je ne vois pas d'où peut venir cette conversion des caractères, de plus le 'é' et le 'ç' ne sont pas transformés eux
    Merci d'avance

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    est-ce que tu as accès au php.ini ? on dirait un problème de config.
    Il faudrait vérifier les lignes :

    mbstring.encoding_translation = Off

    si elle est à on c'est possible que tu aies :
    mbstring.internal_encoding = HTML-ENTITIES


    --enable-mbstr-enc-trans : Active la conversion automatique des données par HTTP, avec le moteur de conversion de mbstring. Si cette option est activée, les données venants du web via HTTP seront converties dans le jeu de caractères mbstring.internal_encoding, automatiquement.
    Plus d'infos

    Bye

  3. #3
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Et bien j'utilise l'hébergeur free, donc je ne suis pas occupé du php j'upload simplement mes pages :/
    Je vais voir si on peut toucher au php.ini par free, merci

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Si t'es chez Free ca doit pas venir de ca.
    C'est quoi le code complet de ta page de réception ?

  5. #5
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Ce qui touche aux variables et à la méthode POST était uniquement dans le code que j'ai déjà donné

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
    		<meta name="generator" content="PSPad editor, www.pspad.com" />
    		<meta name="author" content="Moreau.Y" />
    		<meta name="description" content="Association organisant des concerts et la
    			promotion de groupes" />
    		<meta http-equiv="Refresh" content="2; url=./livredor.php" />
     
     		<link href="./styles/presentation.css" rel="stylesheet" type="text/css" />
    		<link href="./styles/normal.css" rel="stylesheet" type="text/css" />
     
    		<title>Bataillon Thrash - Livre d'or</title>
    	</head>
     
     
    <?php include './presentation/presentation.php'; ?>
    				<!-- PAGE !-->
    				<p class="gros">
    <?php
    	if($id = mysql_connect('sql.free.fr','bataillonthrash','***')) {
    		if(mysql_select_db('db_livredor')) {
    		/* connexion réussie */
     
    			if($_POST['pseudo'] == "")
    			    echo "Erreur : Vous n'avez pas indiqu&eacute; de pseudo";
    			else if($_POST['texte'] == "")
    			    echo "Erreur : Vous n'avez pas &eacute;crit de message";
    			else {
    			    $texte = $_POST['texte'];
    			    //echo "<p>Texte brut : $texte </p>";
    			    $texte = strip_tags($texte);
    			    //echo "<p>Texte filtre : $texte </p>";
    			    $valeurs = '\''.$_POST['pseudo'].'\',\''.$_POST['email'].'\',\''.$texte.'\'';
    			    $cmd = "INSERT INTO db_livredor(pseudo,email,texte,date) VALUES($valeurs,NOW())";
    	            	    if($result = mysql_query($cmd))
    			    {
    				    echo "Votre message a bien &eacute;t&eacute; enregistr&eacute;<br /><br />";
    				    echo "<a href=\"./livredor.php\">Retour</a><br />";
    				    echo "(redirection automatique)";
    	            	    } else
    					echo "Erreur de requ&ecirc;te de base de donn&eacute;es.";
    			}
     
    		} else
    			die("!! Echec de connexion &agrave; la base. !!");
    		mysql_close($id);
    	} else
    		die("!! Echec de connexion au serveur de base de donn&eacute;es. !!");
    ?>
    				</p>
                    <!-- FIN PAGE !-->
    <?php include './presentation/presentation_fin.php'; ?>
    </html>

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    Le problème est peut-être ton encodage "windows-1250". Essaye d'utiliser ISO-8895-1 ou UTF-8 si tu as besoin de caractères non français

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. méthode POST avec les caractères '&' et '+' dans une variable
    Par ayvong dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/07/2008, 20h38
  2. Réponses: 5
    Dernier message: 12/02/2008, 12h01
  3. [PDO] Méthode prepare() et échappement des caractères spéciaux
    Par {Anthony} dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/01/2008, 14h19
  4. Caractères spéciaux dans les noms de variables POST
    Par guidav dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2007, 13h36
  5. Réponses: 1
    Dernier message: 22/01/2007, 20h33

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