web-dev-qa-db-fra.com

Le codage des caractères du document HTML n'a pas été déclaré

Lorsque je clique sur le bouton d'envoi de mon formulaire, le message d'erreur suivant apparaît:

"Le codage de caractères du document HTML n'a pas été déclaré. Le document restituera un texte incohérent dans certaines configurations de navigateur si le document contient des caractères extérieurs à la plage US-ASCII. Le codage de caractère de la page doit être déclaré dans le document ou dans le protocole de transfert. "

insert.html:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<h1> Insert Page </h1>
    <form   action="insert.php"  method="post"  enctype="application/x-www-form-urlencoded" >
    <p>Title:<input type="text"  name="title" size="40"/></p>
     <p>Price:<input type= "text"  name="price" size="40" /></p>
     <p><input type="submit" value="Insert" />
    <input type="reset"  value="Reset" /></p>
    </form>    
</body>
</html>

insert.php:

<?php
   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;
 ?>

Je ne sais pas où est le problème dans mon code. Aidez-moi, s'il vous plaît.

133
xing

Ajoutez ceci en tant que première ligne dans la section HEAD de votre modèle HTML.

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
227
Krishan Gopal

J'ai le même problème avec la situation la plus élémentaire et mon problème a été résolu en insérant cette méta dans la tête:

<meta charset="UTF-8">

l'encodage des caractères (qui est en fait du format UTF-8) du document HTML n'a pas été déclaré

33
Dragan Sekuloski

Eh bien, lorsque vous publiez, le navigateur ne renvoie que $title - toutes vos balises HTML et votre type de document disparaissent. Vous devez les inclure dans votre fichier insert.php:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;


 ?>  
</body>
</html>
17
AlienWebguy

Vous devez changer le fichier .html en .php.

et ajoutez cette ligne suivante

header('Content-Type: text/html; charset=utf-8');
3
Renjith V R

J'ai eu le même problème lorsque j'ai exécuté mon application de formulaire dans Firefox. Ajouter <meta charset="utf-8"/> dans le code html a résolu mon problème dans Firefox.

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>Voice clip upload</title>
  <script src="voiceclip.js"></script>
</head>

<body>
  <h2>Upload Voice Clip</h2>
  <form id="upload_form" enctype="multipart/form-data" method="post">
    <input type="file" name="file1" id="file1" onchange="uploadFile()"><br>
    <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  </form>
</body>

</html>
2
Ishara Amarasekera

Votre page initiale est une page HTML complète contenant un formulaire, dont le contenu est publié sur insert.php lorsque vous cliquez sur le bouton Envoyer, mais insert.php doit traiter le contenu du formulaire et en faire quelque chose, comme l'ajouter à un fichier. base de données, ou les exporter vers une nouvelle page. Votre insert.php actuel ne fait que sortir le contenu du champ title. Votre navigateur essaie donc de l'interpréter comme une page HTML et échoue, bien sûr, car il n'est pas valide HTML tag, etc.).

Votre fichier insert.php doit générer le code HTML nécessaire et y insérer les données de formulaire.

Par exemple:

<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo '<html xmlns="http://www.w3.org/1999/xhtml">';
  echo '<head>';
  echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
  echo '<title>';
  echo $title;
  echo '</title>';
  echo '</head>';
  echo '<body>';
  echo 'Hello, world.';
  echo '</body>';

 ?>
1
gkrogers