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

Langage PHP Discussion :

Meta charset non pris en compte


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 44
    Points : 34
    Points
    34
    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
    Membre régulier
    Homme Profil pro
    developpeur web et android
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 104
    Points
    104
    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>

    L'ordinateur ne fait pas ce qu'on veut qu'il fasse mais il fait ce qu'on lui demande de faire .

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    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
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 44
    Points : 34
    Points
    34
    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 éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 : 515
    Points : 760
    Points
    760
    Par défaut
    Il faut exécuter la commande après avoir initialisé la connexion...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 44
    Points : 34
    Points
    34
    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, 14h21
  2. CSS non pris en compte
    Par DragOr dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 08/06/2006, 13h18
  3. [ASE][SQL]WHERE non pris en compte
    Par Benjamin78 dans le forum Sybase
    Réponses: 1
    Dernier message: 24/03/2006, 12h00
  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, 10h57
  5. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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