1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2017
    Messages : 37
    Points : 23
    Points
    23

    Par défaut Meta charset non pris en compte

    Bonjour, je sollicite votre aide maintenant car cela fait quelques jours que j'essaie de faire quelque chose qui peut paraître assez banal mais je n'y arrive pas !
    Dans mon exemple ci-dessous, je vous présente un formulaire qui lorsque un utilisateur clique sur "Valider", les données vont être enregistrées dans la base de données, c'est là qu'intervient mon problème :
    -Les accents / caractères spéciaux ne sont pas pris en compte malgré le "<meta charset="utf-8">" présent dans le header. Je ne sais pas si c'est à cause de mon éditeur de texte (Brackets), mais en tout cas ce léger soucis commence vraiment à m'agacer au plus haut point !
    Merci d'avance pour votre aide généreuse et de la perte de temps bénévole que vous allez m'accorder

    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
    <?php
    session_start();
    ?>
     
    <html>
    <head>
    <meta charset="utf-8" >
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" media="screen and (min-device-width:768px) and (max-device-width:1023px)" href="mainMin768.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1024px) and (max-device-width:1300px)" href="mainMin1024.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1301px) and (max-device-width:1400px)" href="mainMin1301.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1401px)" href="mainMin1401.css" type="text/css" />
     
     
        <title>InfobisPro</title>
     
          </head>
     
    <script language=JAVASCRIPT>
     
    function validation()
    {
    if(confirm('Êtes-vous sûr de faire cet ajout ?')){
        alert("Le nouveau client a été ajouté !");
     
    }
    else{
        alert("Ouf !");
    }
    } 
    </script> 
     
    <style>
        body {
            background-color: black;
            color:white;
        }
     
    </style>
    <div class ="titre">
    <h1>
        Formulaire d'ajout d'un client<br><br>
    </h1>
    </div>
     <form method="post" action="v_liste.php">
        <INPUT class ="boutonRetourAjoutClient" TYPE="submit" value="RETOUR"/>
     
    </form>   
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
    <form class="input-group1" action="v_ajoutClient.php" method="POST">
        <br><input type="text" name="societeClient" value="" placeholder="Nom de société"/><br><br>
        <input type="text" name="nomClient" value="" placeholder="Nom du responsable"/><br><br>
        <input type="text" name="prenomClient" value="" placeholder="Prénom"/><br><br>
        <input type="tel" name="telephoneMobileClient" maxlength="10" value="" placeholder="Téléphone mobile"/><br><br>
        <input type="tel" name="telephoneFixeClient" maxlength="10" value="" placeholder="Téléphone fixe"/><br><br>
        <input type="text" name="adresseClient" value="" placeholder="Adresse de facturation"/><br><br>
        <input type="email" name="emailClient" value="" placeholder="Email"/><br><br>
        <input type="date" name="dateContratClient" value=""/><br><br>
        <input type="radio" name="typeContrat" value="Maintenance">
    Maintenance
        <input type="radio" name="typeContrat" value="CALP">
    CALP <br><br>
        <center><textarea name="notesClient" resiez="none" rows="8" cols="30" value="" placeholder="NOTES"></textarea></center><br>
        <input class = "boutonResetForm" type="reset" value="RESET"/>
        <input class = "boutonValiderForm" type="submit" name="valider" value="VALIDER" onclick="validation()" />
        </form>
     
    <?php
     
    $info ='';
     
    if (isset($_POST['valider']))
    {
        $societeClient = mysql_real_escape_string($_POST['societeClient']);
        $nomClient = mysql_real_escape_string($_POST['nomClient']);
        $prenomClient = mysql_real_escape_string($_POST['prenomClient']);
        $telephoneMobileClient = mysql_real_escape_string($_POST['telephoneMobileClient']);
        $telephoneFixeClient = mysql_real_escape_string($_POST['telephoneFixeClient']);
        $adresseClient = mysql_real_escape_string($_POST['adresseClient']);
        $emailClient = mysql_real_escape_string($_POST['emailClient']);
        $dateContratClient = mysql_real_escape_string($_POST['dateContratClient']);
        $typeContrat = mysql_real_escape_string($_POST['typeContrat']);
        $notesClient = mysql_real_escape_string($_POST['notesClient']);
     
        if(empty($societeClient) || empty($nomClient) || empty($prenomClient) || empty($telephoneMobileClient) || empty($telephoneFixeClient) || empty($adresseClient) || empty($emailClient) || empty($dateContratClient) || empty($typeContrat) || empty($notesClient))
            $info = 'veuillez renseigner tous les champs';
        else 
        {
        mysql_connect("localhost","root","") or die("Echec de connexion au serveur.");
        mysql_select_db("fichesclients") or die("Echec de connexion à la base de données.");
     
        $query = "INSERT INTO infoclient(societeClient, nomClient, prenomClient, telephoneMobileClient, telephoneFixeClient, adresseClient, emailClient, dateContratClient, typeContrat, notesClient) VALUES('$societeClient','$nomClient','$prenomClient','$telephoneMobileClient','$telephoneFixeClient','$adresseClient','$emailClient','$dateContratClient','$typeContrat','$notesClient')";
     
        $query1 = "INSERT INTO infocalendrier(dispoCal, dateCal, notesCal, societeClient, typeContrat)
        VALUES(DEFAULT, NULL, NULL, '$societeClient', '$typeContrat')";
     
        if(mysql_query($query) and mysql_query($query1))
            $info = 'cest bon';
        else
            $info = 'Erreur lors de la creation';
        }
     
    }
     
    ?>
    </html>

  2. #2
    Futur Membre du Club
    Homme Profil pro
    developpeur web
    Inscrit en
    octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : developpeur web
    Secteur : Services à domicile

    Informations forums :
    Inscription : octobre 2014
    Messages : 4
    Points : 7
    Points
    7

    Par défaut Prendre en compte les caractères spéciales d'un formule

    utilise htmlspecialchars ou mysql_escape_string a place de mysql_real_escape_string
    exemple
    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>test</title>
    </head>
    <body>
    	<?php
                    if (isset($_POST["start"]) && isset($_POST["userName"])) {
                            
                            $userName = mysql_escape_string($_POST["userName"]);
     
                            # ou
     
                            $userName = htmlspecialchars($_POST["userName"]);
     
                    }
            ?>
    	<form action="#" method="post">
    		<input type="text" name="userName"/>
    		<input type="submit" name="start" value="Go">
    	</form>
    </body>
    </html>


  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    27 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 27 239
    Points : 40 436
    Points
    40 436

    Par défaut

    utilise htmlspecialchars ou mysql_escape_string a place de mysql_real_escape_string
    Il ne faut surtout pas faire ça, les deux fonctions ne servent pas du tout à la même chose.

    Ton mysql_connect() doit être placé avant mysql_real_escape_string().
    Ajoute la définition de l'encodage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES 'utf8'");
    et vérifie que ton fichier .php est encodé en UTF8.

    Au passage l'extension mysql est obsolète.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2017
    Messages : 37
    Points : 23
    Points
    23

    Par défaut

    La ligne "mysql_query("SET NAMES 'utf8' ") ne change rien à l'enregistrement des données qui ne prennent pas en compte les accents.
    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
    <?php
    mysql_query("SET NAMES 'utf8'");
    session_start();
    ?>
     
    <html>
    <head>
    <meta charset="utf-8" >
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" media="screen and (min-device-width:768px) and (max-device-width:1023px)" href="mainMin768.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1024px) and (max-device-width:1300px)" href="mainMin1024.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1301px) and (max-device-width:1400px)" href="mainMin1301.css" type="text/css" />
    <link rel="stylesheet" media="screen and (min-device-width:1401px)" href="mainMin1401.css" type="text/css" />
     
     
        <title>InfobisPro</title>
     
          </head>
     
    <script language=JAVASCRIPT>
     
    function validation()
    {
    if(confirm('Êtes-vous sûr de faire cet ajout ?')){
        alert("Le nouveau client a été ajouté !");
     
    }
    else{
        alert("Ouf !");
    }
    } 
    </script> 
     
    <style>
        body {
            background-color: black;
            color:white;
        }
     
    </style>
    <div class ="titre">
    <h1>
        Formulaire d'ajout d'un client<br><br>
    </h1>
    </div>
     <form method="post" action="v_liste.php">
        <INPUT class ="boutonRetourAjoutClient" TYPE="submit" value="RETOUR"/>
     
    </form>   
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
    <form class="input-group1" action="v_ajoutClient.php" method="POST">
        <br><input type="text" name="societeClient" value="" placeholder="Nom de société"/><br><br>
        <input type="text" name="nomClient" value="" placeholder="Nom du responsable"/><br><br>
        <input type="text" name="prenomClient" value="" placeholder="Prénom"/><br><br>
        <input type="tel" name="telephoneMobileClient" maxlength="10" value="" placeholder="Téléphone mobile"/><br><br>
        <input type="tel" name="telephoneFixeClient" maxlength="10" value="" placeholder="Téléphone fixe"/><br><br>
        <input type="text" name="adresseClient" value="" placeholder="Adresse de facturation"/><br><br>
        <input type="email" name="emailClient" value="" placeholder="Email"/><br><br>
        <input type="date" name="dateContratClient" value=""/><br><br>
        <input type="radio" name="typeContrat" value="Maintenance">
    Maintenance
        <input type="radio" name="typeContrat" value="CALP">
    CALP <br><br>
        <center><textarea name="notesClient" resiez="none" rows="8" cols="30" value="" placeholder="NOTES"></textarea></center><br>
        <input class = "boutonResetForm" type="reset" value="RESET"/>
        <input class = "boutonValiderForm" type="submit" name="valider" value="VALIDER" onclick="validation()" />
        </form>
     
    <?php
     
    $info ='';
     
        mysql_connect("localhost","root","") or die("Echec de connexion au serveur.");
        mysql_select_db("fichesclients") or die("Echec de connexion à la base de données.");
     
    if (isset($_POST['valider']))
    {
        $societeClient = mysql_real_escape_string($_POST['societeClient']);
        $nomClient = mysql_real_escape_string($_POST['nomClient']);
        $prenomClient = mysql_real_escape_string($_POST['prenomClient']);
        $telephoneMobileClient = mysql_real_escape_string($_POST['telephoneMobileClient']);
        $telephoneFixeClient = mysql_real_escape_string($_POST['telephoneFixeClient']);
        $adresseClient = mysql_real_escape_string($_POST['adresseClient']);
        $emailClient = mysql_real_escape_string($_POST['emailClient']);
        $dateContratClient = mysql_real_escape_string($_POST['dateContratClient']);
        $typeContrat = mysql_real_escape_string($_POST['typeContrat']);
        $notesClient = mysql_real_escape_string($_POST['notesClient']);
     
        if(empty($societeClient) || empty($nomClient) || empty($prenomClient) || empty($telephoneMobileClient) || empty($telephoneFixeClient) || empty($adresseClient) || empty($emailClient) || empty($dateContratClient) || empty($typeContrat) || empty($notesClient))
            $info = 'veuillez renseigner tous les champs';
        else 
        {
        $query = "INSERT INTO infoclient(societeClient, nomClient, prenomClient, telephoneMobileClient, telephoneFixeClient, adresseClient, emailClient, dateContratClient, typeContrat, notesClient) VALUES('$societeClient','$nomClient','$prenomClient','$telephoneMobileClient','$telephoneFixeClient','$adresseClient','$emailClient','$dateContratClient','$typeContrat','$notesClient')";
     
        $query1 = "INSERT INTO infocalendrier(dispoCal, dateCal, notesCal, societeClient, typeContrat)
        VALUES(DEFAULT, NULL, NULL, '$societeClient', '$typeContrat')";
     
        if(mysql_query($query) and mysql_query($query1))
            $info = 'cest bon';
        else
            $info = 'Erreur lors de la creation';
        }
     
    }
     
    ?>
    </html>

  5. #5
    Membre averti Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : mars 2007
    Messages : 255
    Points : 360
    Points
    360

    Par défaut

    Il faut exécuter la commande après avoir initialisé la connexion...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2017
    Messages : 37
    Points : 23
    Points
    23

    Par défaut

    Merci Geoffrey cela fonctionne très bien !

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

Discussions similaires

  1. [QR 4.05] Propriété imprimante non pris en compte
    Par portu dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 30/09/2008, 15h21
  2. CSS non pris en compte
    Par DragOr dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 08/06/2006, 14h18
  3. [ASE][SQL]WHERE non pris en compte
    Par Benjamin78 dans le forum Sybase
    Réponses: 1
    Dernier message: 24/03/2006, 13h00
  4. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 11h57
  5. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Fenêtres/Dialogues
    Réponses: 5
    Dernier message: 03/08/2005, 09h35

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