2012-08-16 14 views
106

erklärt Als ich einreichen klicken Sie HIER Taste auf meiner Form die folgende Fehlermeldung angezeigt:.Die Zeichenkodierung des HTML-Dokuments wurde nicht

„Die Zeichenkodierung des HTML-Dokuments nicht deklariert wurde das Dokument mit unlesbaren Text übertragen wird in einigen Browser-Konfigurationen, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs enthält. Die Zeichencodierung der Seite muss im Dokument oder im Übertragungsprotokoll deklariert werden. "

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; 
?> 

Ich weiß nicht, wo das Problem in meinem Code ist. Bitte hilf mir.

+2

Einige gute Lektüre: [Deklarieren Zeichencodierungen in HTML] (http://www.w3.org/International/questions/qa-html-encoding-declarations) –

+0

Versuchen Sie, Ihre .html-Seite zu .php: 'insert.html' ->' insert.php' zu benennen. Und nennen Sie Ihre Formularhandhabungsdatei ('insert.php') zu' insert_action.php' oder etwas. (Nicht sicher, ob es hilft, aber ich würde 'html' und' php' Seiten bei PHP nicht mischen.) –

+0

Oh mein Gott, das war eine alte Frage. Habe die Daten wegen der neuen Antwort nicht bemerkt ... –

Antwort

15

Nun, wenn Sie buchen, gibt der Browser nur $title - alle Ihre HTML-Tags und Doctype weg. Sie müssen die in Ihrer insert.php Datei enthalten sein:

<!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> 
+0

Ich habe aufgenommen, aber zeigt nichts – xing

+1

Danke, ich hatte ein ähnliches Problem, und Ihre Antwort geholfen, es zu beheben (mir fehlte die Meta http-equiv ... Zeile). –

1

Ihre erste Seite ist eine komplette HTML-Seite ein Formular enthält, dessenderen Inhalte sind gebucht insert.php, wenn die Submit-Button geklickt wird, aber insert.php muss den Inhalt des Formulars verarbeiten und etwas mit ihnen machen, z. B. sie zu einer Datenbank hinzufügen oder sie auf einer neuen Seite ausgeben. Ihre aktuelle insert.php gibt nur den Inhalt des Titelfeldes aus, so dass Ihr Browser versucht, das als HTML-Seite zu interpretieren, und scheitert natürlich, weil es kein gültiges HTML ist (dh es ist nicht in einem 'HTML' enthalten) Tag usw.).

Ihre insert.php muss den erforderlichen HTML-Code ausgeben und die Formulardaten irgendwo einfügen.

Zum Beispiel:

<?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

Ich habe versucht mit diesem Code, aber es zeigt 'Echo' als Ausgabe. – xing

+0

Das ist seltsam.Können Sie Ihren Code als Ergänzung zur ursprünglichen Frage posten? – gkrogers

189

Fügen Sie diese als erste Zeile in dem HEAD-Abschnitt Ihrer HTML-Vorlage

<meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
<meta content="utf-8" http-equiv="encoding"> 
+5

zweite Zeile erzeugt diesen Fehler in W3 Validator für docytype html: 'Bad Wert Codierung für Attribut http-Äquiv. Auf Element meta.' – yitwail

+3

+2

@Yitwail Ich habe gerade die zweite Zeile ausgeschlossen, und es hat funktioniert. – Evorlor

22

Ich habe gleiches Problem mit der grundlegendsten Situation und mein Problem war gelöst mit Einfügen dieses Metas in den Kopf:

<meta charset="UTF-8"> 

die Zeichencodierung (die eigentlich UTF-8 ist) des HTML-Dokuments wurde nicht erklärt

2

Sie müssen die Datei von .html zu .php ändern.

und fügen Sie diese folgende Zeile

header('Content-Type: text/html; charset=utf-8'); 
Verwandte Themen