[RESOLU] problème d'accent

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] problème d'accent

Re: problème d'accent

par romuald » 24 oct. 2012, 10:03

J'ai un peut honte là, un peut voir beaucoup xD xD xD xD, je viens de voir l'erreur de grand débutant, en faite, je n'avais pas fais attention, j'ai complétement oublier de mettre <html> au début, j'avais bien mis la fin </html> mais je ne l'avais pas ouvert, je suis désolée de vous avoir fais perdre votre temps sur une erreur qui n'aurais jamais du ce produire, on mettra ça sur la fatigue xD encore merci à tous et surtout à toi juliette ;) d'avoir pris le soin d'aller jusqu'à modifier le code php, désormais tout s'affiche normalement que ce soit avec mon code comme celui de juliette merci.

Re: problème d'accent

par AB » 24 oct. 2012, 05:20

As tu lu ce tuto. Si tu respecte toutes les étapes cela devrait être ok. Au passage je ne vois pas de header php dans ton code ?

Re: problème d'accent

par juliette » 24 oct. 2012, 00:45

ok, alors tu as un autre soucis car chez moi les accents sont correct et il n'enregistre qu'un champ...
crée un nouveau fichier et teste mon code complet mais seul sans rien d'autre pour voir...
n'oubli pas de changer les infos de connexion !

Re: problème d'accent

par Romualdd » 24 oct. 2012, 00:34

si je te donne des codes et que tu ne teste pas, alors j'arrete la...
mais j'ajoute que tu peux mettre ton poste en résolue car c'est résolue...
Lol ta pas du bien comprendre ma repOnse, j'ai tester ton code, mais il ne marche que si je l'utilise sur la même page modificationnews , mais quand je souhaite l'afficher dans la news, le résultat reste le même , ton code n'a rien changer au problème au contraire, quand je l'utilise il fait une copie supplémentaire dans ma bdd , désolée si je me fais mal comprendre.

Re: problème d'accent

par juliette » 23 oct. 2012, 23:08

si je te donne des codes et que tu ne teste pas, alors j'arrete la...
mais j'ajoute que tu peux mettre ton poste en résolue car c'est résolue...

Re: problème d'accent

par romuald » 23 oct. 2012, 23:06

J'ai installer ton code, sur la page les accent ne pose aucun problème, par contre quand je regarde dans ma bdd, les accents fond place à "é",
je ne prend même pas la peine de mettre ce code
 $base = mysql_connect('localhost', 'root', '');
        mysql_select_db('xxx', $base);

        $sql = 'SELECT * FROM news';
        $query = mysql_query($sql) or die(mysql_error());
        while ($result = mysql_fetch_assoc($query)) {
            echo $result['auteur'] . '&nbsp;' . $result['titre'].'&nbsp;' . $result['texte_news'].'<br />';
        }
        ?>
dans ma page d'index car je sais déjà grâce à la bdd que ça va foirer.

Donc grâce à ton code, j'ai pus voir que le souci viens de la bdd qui reçois et renvois sans les accents et non pas le fichier php.
Par contre je ne vois absolument pas dous celà peut bien provenir car j'ai tout vérifier, ma table et bien en utf8_generali.
Par contre les accents marche toujours quand je modifie directement via ma bdd :/
et dernière chose que je viens de remarquer, ton code envoie deux fois le même texte dans ma bdd...

Re: problème d'accent

par romuald » 23 oct. 2012, 23:02

merci sam mais j'avais tout essayer et dans n'importe quel position, rien ne marche .

Re: problème d'accent

par romuald » 23 oct. 2012, 23:00

J'ai installer ton code, sur la page les accent ne pose aucun problème, par contre quand je regarde dans ma bdd, les accents fond place à "é",
je ne prend même pas la peine de mettre ce code
 $base = mysql_connect('localhost', 'root', '');
        mysql_select_db('xxx', $base);

        $sql = 'SELECT * FROM news';
        $query = mysql_query($sql) or die(mysql_error());
        while ($result = mysql_fetch_assoc($query)) {
            echo $result['auteur'] . '&nbsp;' . $result['titre'].'&nbsp;' . $result['texte_news'].'<br />';
        }
        ?>
dans ma page d'index car je sais déjà grâce à la bdd que ça va foirer.

Donc grâce à ton code, j'ai pus voir que le souci viens de la bdd qui reçois et renvois sans les accents et non pas le fichier php.
Par contre je ne vois absolument pas dous celà peut bien provenir car j'ai tout vérifier, ma table et bien en utf8_generali.

Re: problème d'accent

par romuald » 23 oct. 2012, 22:52

Merci je regarde ça et te tien au courant

Re: problème d'accent

par juliette » 23 oct. 2012, 21:06

oubli ce que je t'ai dis pour les <tr>, c'est moi qui li a l'envers #-o

Re: problème d'accent

par juliette » 23 oct. 2012, 20:47

au fait, la structure d'une table html est celle ci:
<table>
    <tbody>
        <tr>
            <td>...</td>
        </tr>   

ou
       <tr>
            <td>...</td>
            <td>...</td>
        </tr> 

mais pas de 
      <tr>
            <td>...</td>
            <tr></tr> que tu laisse vide
            <td>...</td>
       </tr>


    </tbody>
</table>
et aussi, ne donne pas de taille a ta table comme ça: <table height="241">
il vaut mieux lui donner une classe css comme ca: <table class="hauteur">
et dans ton css tu fait comme ça: .hauteur{width:241px;}

Re: problème d'accent

par juliette » 23 oct. 2012, 20:36

tiens, regarde la ça fonctionne:
<?php
if (isset($_POST['go']) && $_POST['go'] == 'Poster la news') {

    $base = mysql_connect('localhost', 'root', '');
    mysql_select_db('xxx', $base);

    if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
        $erreur = 'Les variables nécessaires au script ne sont pas définies.';
    } else {
        if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
            $erreur = 'Au moins un des champs est vide.';
        } else {

            $sql = 'INSERT INTO news VALUES("0", "' . mysql_escape_string($_POST['auteur']) . '", "' . mysql_escape_string($_POST['titre']) . '", "' . date("Y-m-d H:i:s") . '", "' . mysql_escape_string($_POST['news']) . '")';


            mysql_query($sql) or die('Erreur SQL !' . $sql . '<br />' . mysql_error());

            mysql_close();

            var_dump($_POST);
        }
    }
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>titre</title>
    </head>
    <body>
        <form action="index.php" method="post">
            <table height="241">
                <tr><td>
                        <span class="gras">Auteur :</span>
                    </td><td>
                        <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo trim($_POST['auteur']); ?>">
                    </td></tr><tr><td>
                        <span class="gras">Titre :</span>
                    </td><td>
                        <input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo trim($_POST['titre']); ?>">
                    </td></tr><tr><td>
                        <span class="gras">News :</span>
                    </td><td>
                        <textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo trim($_POST['news']); ?></textarea>
                    </td></tr><tr><td><td align="right">
                        <input type="submit" name="go" value="Poster la news">
                    </td></tr></table>
        </form>

        <?php
        if (isset($erreur))
            echo '<br /><br />', $erreur;
        
        /**
         * test d'affichage pour voir les accents
         */
        $base = mysql_connect('localhost', 'root', '');
        mysql_select_db('xxx', $base);

        $sql = 'SELECT * FROM news';
        $query = mysql_query($sql) or die(mysql_error());
        while ($result = mysql_fetch_assoc($query)) {
            echo $result['auteur'] . '&nbsp;' . $result['titre'].'&nbsp;' . $result['texte_news'].'<br />';
        }
        ?>
    </body>
</html>

j'ai été obligé de supprimer les fonctions "htmlentities" des ces lignes <?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?> dans le formulaire de contact si non ça ne marchait pas ???

Re: problème d'accent

par juliette » 23 oct. 2012, 16:13

ok, je regarde mais donne moi aussi le code qui affiche les infos de la bdd...

Re: problème d'accent

par sam12 » 23 oct. 2012, 16:10

Il n'y a que moi que ça choque le mysql_query avant le connect et le select_db?
Tu peux tester aussi:
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');

Re: problème d'accent

par romuald » 23 oct. 2012, 07:50

Le code est celui du haut
<?php
mysql_query("SET NAMES UTF8");

if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
       
        $base = mysql_connect ('', '', '');
     mysql_select_db('', $base);

        if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
                $erreur = 'Les variables nécessaires au script ne sont pas définies.';
        }
        else {
                if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
                        $erreur = 'Au moins un des champs est vide.';
                }
               
                else {
                       
                        $sql = 'INSERT INTO news VALUES("0", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")';

               
                        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                        mysql_close();

                       
                        header('Location:../projet.php');
                       
                        exit();
                }
        }
}
?>

       



<form action="insert_news.php" method="post">
<table height="241">
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>

<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>

pour ma bdd
Structure de la table `news`
--

CREATE TABLE IF NOT EXISTS `news` (
  `id` int(1) NOT NULL auto_increment,
  `auteur` varchar(30) NOT NULL,
  `titre` text NOT NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `texte_news` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;