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 :

Problème Accentuation utf-8 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut Problème Accentuation utf-8
    Bonjour à tous.
    Alors voilà j'ai un petit problème avec ma BDD qui n'accepte pas les accents. J'ai fait le tour des tuto/forum et rien qui ne correspond a mon problème car tout est encodé utf8.
    Quelqu'un aurait t'il une solution?

    Nom : 375557.png
Affichages : 67
Taille : 155,2 Ko

    et voici une copie de ma 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
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    <?php
     
    include('config.php');
     
    ?>
     
    <!DOCTYPE html>
     
    	<html>
     
    		<head>
     
    			<meta charset="utf-8"/><link rel="icon" type="image/png" href="Image/flavicon.png" /><!--[if IE]><link rel="shortcut icon" type ="image/x-icon" href="Image/flavicon.ico" /><! [endif]-->
     
    			<!--[if lt IE 9]>
     
                <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
     
    			<![endif]-->
     
    			<link rel="stylesheet" href="Pagination_book.css" />
     
    			<title> envoyer </title>
     
    		</head>
     
     
     
    <body>		
     
    <center><img src="Image/l.png" alt="ban"/></center><br /><br /><br />		
     
     
     
    <?php
     
    include('nav.php');
     
    ?>
     
    <body>
     
    <section>
     
    <?php
     
    	if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') { 
     
    	if (empty($_POST['destinataire']) || empty($_POST['titre']) || empty($_POST['message'])) { 
     
        $erreur = 'Au moins un des champs est vide.'; 
     
       } 
     
       else { 
     
          // si tout a &eacute;t&eacute; bien rempli, on insère le message dans notre table SQL
     
     
     
          $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['userid'].'", "'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")'; 
     
          mysql_query($sql) or die('Erreur SQL !'. addslashes($sql) .'<br />'.mysql_error());
     
          mysql_close();
     
         ?> <a href="messagerie.php">Messagerie</a><br /><br />
     
    	 <?php echo " Message envoy&eacute; <br /><br />";
     
       }  
     
    }  
     
    ?>
     
    <a href="Page_d_accueil.php">Retour à l'accueil</a><br /><br />
     
    Envoyer un message :<br /><br />
     
     
     
    <?php  
     
     mysql_connect('*****', '******', '*******');
     
    mysql_select_db('******');
     
     
     
    // on pr&eacute;pare une requete SQL selectionnant tous les login des membres du site en prenant soin de ne pas selectionner notre propre login, le tout, servant à alimenter le menu d&eacute;roulant sp&eacute;cifiant le destinataire du message
     
    $sql = 'SELECT users.username as nom_destinataire, users.id as id_destinataire FROM users WHERE id <> "'.$_SESSION['userid'].'" ORDER BY username ASC';  
     
    // on lance notre requete SQL
     
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
     
    $nb = mysql_num_rows ($req);  
     
     
     
    if ($nb == 0) { 
     
       // si aucun membre n'a &eacute;t&eacute; trouv&eacute;, on affiche tout simplement aucun formulaire
     
       echo 'Vous êtes le seul membre inscrit.';  
     
    }  
     
    else { 
     
       // si au moins un membre qui n'est pas nous même a &eacute;t&eacute; trouv&eacute;, on affiche le formulaire d'envoie de message
     
       ?>
     
       <form action="envoyer.php" method="post">
     
       Pour : <select name="destinataire">
     
       <?php
     
       // on alimente le menu d&eacute;roulant avec les login des diff&eacute;rents membres du site
     
       while ($data = mysql_fetch_array($req)) { 
     
          echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>'; 
     
       } 
     
       ?>
     
       </select><br />
     
       Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>"><br />
     
       Message : <textarea rows="15" cols="40" name="message"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea><br />
     
       <input type="submit" name="go" value="Envoyer">
     
       </form>
     
       <?php
     
    }  
     
    mysql_free_result($req);  
     
    mysql_close();  
     
    ?>
     
    </select>
     
     
     
    <br /><br /><a href="deconnection.php">D&eacute;connexion</a>
     
    <?php
     
    // si une erreur est survenue lors de la soumission du formulaire, on l'affiche
     
    if (isset($erreur)) echo '<br /><br />',$erreur;  
     
    ?>
     
     
     
    </section>		
     
    <?php include('footer.php'); ?>
     
    </body>		
     
    </html>

  2. #2
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    ton fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    
    header('Content-Type: text/html; charset=UTF-8');
    $requete = "UPDATE personne SET connexion='non', session_id="" WHERE pseudo='".$_SESSION['pseudo']."' AND session_id='".session_id()."'";
    mysql_query("SET NAMES 'utf8'");
    $quer = mysql_query($requete);
    
    ?>
    et ton fichier html, das le <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut
    Merci pour ta réponse!
    ce qui donne en 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
    <?php	mysql_real_escape_string($_POST['titre']);
    	mysql_real_escape_string($_POST['message']);
     
    	if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') { 
     
    	if (empty($_POST['destinataire']) || empty($_POST['titre']) || empty($_POST['message'])) { 
     
        $erreur = 'Au moins un des champs est vide.'; 
     
       } 
     
       else { 
     
          // si tout a &eacute;t&eacute; bien rempli, on insère le message dans notre table SQL
     
          header('Content-Type: text/html; charset=UTF-8');
     
          $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['userid'].'", "'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';
          mysql_query("SET NAMES 'utf8'");
          $quer = mysql_query($sql); 
     
          mysql_query($sql) or die('Erreur SQL !'. addslashes($sql) .'<br />'.mysql_error());
     
          mysql_close();
     
         ?>
    Mais vue que ma page PHP et ma page HTML sont en une seul page, il refuse le header(content-type...
    Du coup sa ne marche toujours pas:/

  4. #4
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    et tu ne peux pas mettre le fichier php en dehors du fichier html?

  5. #5
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    qu'est ce qui t'empêche d'insérer le fragment de code php qui génère le header au début de ton html?

    le code php peut être réparti en différentes sections dans ton html...

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut
    Bonjour à vous!

    Le problème devait être avec l'hebergeur finalement

    Je les ai contacté et tout est rentré dans l'ordre. Ce n'était donc pas un problème avec ma page!

    Merci à vous tous!

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

Discussions similaires

  1. Problème accents : utf-8 ou iso-8859-1 ?
    Par Unusual dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/06/2009, 00h04
  2. Gtkmm: problème encodage utf-8
    Par balabare dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 21/01/2009, 18h51
  3. Problème Cron utf-8
    Par fanning dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 13/06/2008, 08h06
  4. Réponses: 3
    Dernier message: 12/11/2007, 14h55
  5. [MySQL] Tout en UTF8 mais problème accentuations quand même
    Par speedev dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 11/04/2007, 22h43

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