Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème accent

Sujet résolu
    16 janvier 2020 à 19:07:24

    Bonjour, voici mon problème j'ai ci-contre l'ébauche d'un projet afin de faire mes tests je ne l'ai pas encore terminé mais j'ai déjà un problème avec les accent dans la base de donnée. J'ai lu tout un tas de truc sur le sujet mais ça ne ce passe pas comme prévu. Voici mes différents code. 

    inscription.php

    <meta charset="utf-8"/>
    
    <form action="register.php" method="post" class="p-5 bg-white">
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputname">Nom</label>
                        <input required type="text" name="name" class="form-control">
                      </div>
                    </div>
                   <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputprenom">Prenom</label>
                        <input required type="text" name="prenom" class="form-control" >
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputprod">Nom de la production</label>
                        <input required type="text" name="prod" class="form-control" >
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputborn">Date de naissance</label>
                        <input required type="date" name="born" class="form-control" >
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputville">Ville</label>
                        <input required type="text" name="ville" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputmail">E-mail</label>
                        <input required type="email" name="mail" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputphone">Téléphone</label>
                        <input required type="tel" name="phone" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputtitre">Titre</label>
                        <input required type="text" name="titre" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12">
                        <label class="font-weight-bold" for="inputsyno">Synopsis</label>
                        <textarea required name="syno" class="form-control"></textarea>
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputgenre">Genre</label>
                        <input required type="text" name="genre" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputduree">Durée</label>
                        <input required type="text" name="duree" class="form-control">
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputreali">Réalisateur</label>
                        <input required type="text" name="reali" class="form-control" >
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12 mb-3 mb-md-0">
                        <label class="font-weight-bold" for="inputlink">Lien du film</label>
                        <input required type="text" name="link" class="form-control" >
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12">
                        <label class="font-weight-bold" for="inputmessage">Commentaire</label>
                        <textarea required name="message" class="form-control"></textarea>
                      </div>
                    </div>
                    <div class="row form-group">
                      <div class="col-md-12">
                        <input type="submit" value="Send Message" class="btn btn-primary pill px-4 py-2">
                      </div>
                    </div>
                  </form>
    register.php
    <?php
    $servername = "127.0.0.1";
    $username = "root";
    $password = "";
    $dbname = "projet";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    mysqli_set_charset("projet", "utf8");
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $nom=$_POST['name'];
    $prenom=$_POST['prenom'];
    $prod=$_POST['prod'];
    $born=$_POST['born'];
    $ville=$_POST['ville'];
    $mail=$_POST['mail'];
    $phone=$_POST['phone'];
    $titre=$_POST['titre'];
    $syno=$_POST['syno'];
    $genre=$_POST['genre'];
    $duree=$_POST['duree'];
    $reali=$_POST['reali'];
    $link=$_POST['link'];
    $message=$_POST['message'];
    
    $sql = "INSERT INTO test (nom, prenom, prod, born, ville, mail, phone, titre, syno, genre, duree, reali, link, message)
    VALUES ('$nom', '$prenom', '$prod', '$born', '$ville', '$mail', '$phone', '$titre', '$syno', '$genre', '$duree', '$reali', '$link', '$message')";
    
    if ($conn->query($sql) === TRUE) {
        header('Location: inscription.php');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    
    $conn->close();
    ?>

    Les accent que ça me fait dans Mysql sont les suivnat le é ==> Ã©

    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2020 à 20:19:09

      Bonsoir,

      J'ai regardé la configuration de mes tables, pour voir. Elles sont toutes en "utf8_general_ci". Les pages PHP sont également en UTF-8. Et je n'ai aucun problème pour les accents. Peut-être faut-il regarder de ce côté ?

      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2020 à 22:28:38

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
          17 janvier 2020 à 0:30:35

          Multicompte ?

          > mysqli_set_charset("projet", "utf8");

          Encore un qui travaille sans les erreurs PHP ? Parce que d'après le prototype de la doc de la fonction mysqli_set_charset que voici :

          > mysqli_set_charset ( mysqli $link , string $charset ) : bool

          Le premier paramètre doit être une instance mysqli et certainement pas une chaîne de caractères ... Et ça devrait apparaître par une belle erreur.

          (ie ça devrait être $conn à la place de ce "projet")

          Par contre, j'espère que t'es conscient que faute d'avoir préparé la requête et d'avoir échappé tes données (mysqli_real_escape_string) c'est injection SQL et plantage de la requête si les données contiennent la moindre ' assurés !

          -
          Edité par julp 17 janvier 2020 à 0:33:20

          • Partager sur Facebook
          • Partager sur Twitter

          Problème accent

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown