225

フォームの送信ボタンをクリックすると、次のエラー メッセージが表示されます。

HTML ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US-ASCII 範囲外の文字が含まれている場合、一部のブラウザー構成では、ドキュメントが文字化けしてレンダリングされます。ページの文字エンコーディングは、ドキュメントまたは転送プロトコルで宣言する必要があります。

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

コードのどこに問題があるのか​​ わかりません。私を助けてください。

4

6 に答える 6

352

これを HTML テンプレートの HEAD セクションの最初の行として追加します

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
于 2012-10-10T12:58:18.780 に答える
21

投稿すると、ブラウザは出力するだけ$titleです。すべてのHTMLタグとDoctypeが消えます。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>
于 2012-08-16T22:23:36.470 に答える
2

最初のページはフォームを含む完全なHTMLページであり、送信ボタンがクリックされるとその内容がinsert.phpに投稿されますが、insert.phpはフォームの内容を処理し、フォームに追加するなどの処理を行う必要があります。データベース、またはそれらを新しいページに出力します。現在のinsert.phpはタイトルフィールドの内容を出力するだけなので、ブラウザはそれをHTMLページとして解釈しようとしますが、明らかに、有効なHTMLではない(つまり、「HTML」に含まれていないため)失敗します。タグなど)。

insert.phpは、必要なHTMLを出力し、フォームデータをどこかに挿入する必要があります。

例えば:

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

 ?>
于 2012-08-16T22:54:00.800 に答える