2012-08-16 22 views
106

घोषित नहीं किया गया था कुछ ब्राउज़र कॉन्फ़िगरेशन में यदि दस्तावेज़ में यूएस-एएससीआईआईआई रेंज के बाहर से वर्ण शामिल हैं। पृष्ठ के वर्ण एन्कोडिंग को दस्तावेज़ में या स्थानांतरण प्रोटोकॉल में घोषित किया जाना चाहिए। "वर्ण एन्कोडिंग

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

मैं जानता हूँ कि जहाँ मेरे कोड में समस्या है न। क्रिप्या मेरि सहायता करे।

+2

कुछ अच्छा पढ़ने जोड़ें: [HTML में वर्ण एन्कोडिंग घोषणा] (http://www.w3.org/International/questions/qa-html-encoding-declarations) –

+0

.html पृष्ठ को .php: 'insert.html' ->' insert.php' नाम देने का प्रयास करें। और अपने फॉर्म हैंडलिंग फ़ाइल ('insert.php') को 'insert_action.php' या कुछ' नाम दें। (यह सुनिश्चित नहीं है कि यह मदद करता है लेकिन PHP का उपयोग करते समय मैं 'html' और' php' पृष्ठों को मिश्रित नहीं करता।) –

+0

ओह प्रिय, यह एक पुराना सवाल था। नए उत्तर की वजह से तारीखों को नोटिस नहीं किया ... –

उत्तर

15

ठीक है जब आप पोस्ट करते हैं, ब्राउज़र केवल $title आउटपुट करता है - आपके सभी HTML टैग और डॉक्टरेट दूर जाते हैं। आप अपने 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> 
+0

मैंने शामिल किया है लेकिन कुछ भी नहीं दिखाता – xing

+1

धन्यवाद, मुझे एक ही समस्या थी, और आपके उत्तर ने इसे ठीक करने में मदद की (मुझे मेटा http-equiv ... लाइन याद आ रही थी)। –

1

आपका प्रारंभिक पृष्ठ एक पूर्ण 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>'; 

?> 
+1

मैंने इस कोड के साथ प्रयास किया लेकिन यह आउटपुट के रूप में 'गूंज' दिखाता है। – xing

+0

यह अजीब है।क्या आप अपना कोड मूल प्रश्न के अतिरिक्त के रूप में पोस्ट कर सकते हैं? – gkrogers

189

अपने HTML टेम्पलेट के HEAD अनुभाग में पहली पंक्ति के रूप में इस जोड़े

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

दूसरी पंक्ति डॉकटाइप एचटीएमएल के लिए डब्ल्यू 3 वैलिडेटर में इस त्रुटि का उत्पादन करती है: 'तत्व मेटा पर विशेषता http-equiv के लिए खराब मान एन्कोडिंग। – yitwail

+3

<मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "टेक्स्ट/एचटीएमएल; वर्णसेट = आईएसओ -885 9 -1 "> –

+2

@yitwail मैंने बस दूसरी पंक्ति को छोड़ दिया, और यह काम किया। – Evorlor

22

मैं सबसे बुनियादी स्थिति के साथ एक ही समस्या है और मेरी समस्या के साथ हल किया गया था इस मेटा को सिर में डालना:

<meta charset="UTF-8"> 

वर्ण एन्कोडिंग (जो वास्तव में यूटीएफ -8 है) एचटीएमएल दस्तावेज़ की घोषणा नहीं की गई थी

2

आपको फ़ाइल को .html से .php में बदलना होगा।

और इस निम्न पंक्ति

header('Content-Type: text/html; charset=utf-8'); 
संबंधित मुद्दे