2012-03-08 16 views
7

नहीं होना चाहिए जब मुझे HTML एन्कोडेड टेक्स्ट को HTML में वापस करने के लिए कोई फ़ंक्शन नहीं है, तो मुझे एक प्रकार की मेल नहीं मिला त्रुटि मिल रही है। यह सामान्य रूप से अच्छा काम करता है, लेकिन किसी कारण से, मैं कुछ पाठ आज पर इसका इस्तेमाल, और निम्न त्रुटि प्राप्त करने की कोशिश:क्लासिक एएसपी: मुझे

Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'UnChkString' 

/manage/solutions_delete.asp, line 22 

लाइन मैं पर इस समारोह का उपयोग कर रहा है:

<%= UnChkString(solution_desc) %> 

solution_desc चर रहा है:

&lt;p&gt;Here is a description of what this solution is all about.&lt;/p&gt; 

क्षेत्र डेटाबेस एक पाठ क्षेत्र है से solution_desc खींच रहा है।

मेरे UnChkString समारोह है:

Function UnChkString(string) 
    UnChkString = Replace(string,"[%]","%") 
    UnChkString = HTMLDecode(UnChkString) 
End Function 

HTMLDecode समारोह है:

Function HTMLDecode(sText) 
    Dim I 
    sText = Replace(sText, "&amp;" , Chr(38)) 
    sText = Replace(sText, "&amp;" , "&") 
    sText = Replace(sText, "&quot;", Chr(34)) 
    sText = Replace(sText, "&rsquo;", Chr(39)) 
    sText = Replace(sText, "&lt;" , Chr(60)) 
    sText = Replace(sText, "&gt;" , Chr(62)) 
    sText = Replace(sText, "&nbsp;", Chr(32)) 
    For I = 1 to 255 
     sText = Replace(sText, "&#" & I & ";", Chr(I)) 
    Next 
    HTMLDecode = sText 
End Function 

संपादित

मैं भी कोशिश की है:

<%= UnChkString(CStr(solution_desc)) %> 

कोई किस्मत के साथ।

+0

कौन सी लाइन लाइन 22 है? – bfavaretto

+0

@bfavaretto '<% = UnChkString (solution_desc)%>' – James

+0

शायद आपको डीबी से 'NULL' मिल रहा है? क्या आपके द्वारा पोस्ट की गई उदाहरण स्ट्रिंग के साथ त्रुटि होती है? – bfavaretto

उत्तर

7

कभी कभी अपने सबसे अच्छे रूप में सिर्फ करने के लिए त्रुटि को बहुत सावधानी से फिर से पढ़ें। VBS के इस हिस्से पर विचार करें:

DoStuff("Hello World") 

DoStuff के बाद से परिभाषित नहीं है और न ही है वहाँ एक Option Explicit मैं:

Error: Type mismatch: 'DoStuff'

आपका त्रुटि है: Type mismatch: 'UnChkString'। यह पैरामीटर के बारे में शिकायत नहीं कर रहा है कि इसकी शिकायत UnChkString के बारे में शिकायत कर रही है। मेरा अनुमान है कि आपने वीबीस्क्रिप्ट प्रोग्रामिंग गुफों का सबसे बुनियादी कार्य किया है, आपके पास कोड के शीर्ष पर Option Explicit नहीं है। यह आवश्यक है।

कारणों से अस्पष्ट रूप से आपके द्वारा पोस्ट किए गए कोड को कोड पर <%= UnChkString(solution_desc) %> पर निष्पादित किया जा रहा है, स्क्रिप्ट इंजन को UnChkString कोई फ़ंक्शन नहीं है, इसलिए आप जो त्रुटि देख रहे हैं। मुझे संदेह है कि Option Explicit को शामिल करने से समस्या प्रकट होगी (साथ ही आपको Dim आपके सभी चरों को मजबूर कर देगा)।

+0

मैंने यह कहते हुए जवाब देना शुरू कर दिया कि मेरी इच्छा है कि यह आसान था, लेकिन फ़ंक्शन स्क्रिप्ट प्रत्येक पृष्ठ में स्वतः लोड हो जाती है, लेकिन फिर भी जांच की जाती है। यही कारण था। मेरे फ़ंक्शन स्क्रिप्ट को इस विशेष पृष्ठ में शामिल नहीं किया गया था। धन्यवाद। – James

0

stringvStr को बदलें और थोड़ा संशोधित करें।

इस तरह का प्रयास करें: -

Function UnChkString(vStr) 
    vStr = Replace(vStr,"[%]","%") 
    UnChkString = HTMLDecode(vStr) 
End Function 
+0

उल्लेख करने के लिए भूल गए कि मैंने पहले से ही कुछ भी अलग-अलग (निश्चित रूप से भिन्न चर) कोशिश की थी। फिर भी कोशिश की, लेकिन फिर भी वही बात। – James

+0

@ जेम्स: अभी भी एक ही त्रुटि संदेश या अलग संदेश –

+0

वही त्रुटि संदेश। – James

0

है ताकि इसे ठीक करने के लिए, आप अगर स्ट्रिंग उस में चार है पहले जांच करने की आवश्यकता है, यह कर ..

Function HTMLDecode(byVal sText) 
    HTMLDecode = sText 
    If Instr(HTMLDecode,"&amp;") Then HTMLDecode = Replace(HTMLDecode, "&amp;" , Chr(38)) 
    If Instr(HTMLDecode,"&amp;") Then HTMLDecode = Replace(HTMLDecode, "&amp;" , "&") 
    If Instr(HTMLDecode,"&quot;") Then HTMLDecode = Replace(HTMLDecode, "&quot;", Chr(34)) 
    If Instr(HTMLDecode,"&rsquo;") Then HTMLDecode = Replace(HTMLDecode, "&rsquo;", Chr(39)) 
    If Instr(HTMLDecode,"&lt;") Then HTMLDecode = Replace(HTMLDecode, "&lt;" , Chr(60)) 
    If Instr(HTMLDecode,"&gt;") Then HTMLDecode = Replace(HTMLDecode, "&gt;" , Chr(62)) 
    If Instr(HTMLDecode,"&nbsp;") Then HTMLDecode = Replace(HTMLDecode, "&nbsp;", Chr(32)) 

    For I = 1 to 255 
     If Instr(HTMLDecode, "&#" & I & ";") Then HTMLDecode = Replace(HTMLDecode, "&#" & I & ";", Chr(I)) 
    Next 
End Function 

और ..

Function UnChkString(vStr) 
    UnChkString = vStr 
    If Instr(vStr,"[%]") Then vStr = Replace(vStr,"[%]","%") 
End Function 

अपने Type Mismatch ठीक करना चाहिए कि मुद्दा। मुझसे मत पूछो क्यों, यह सिर्फ काम करता है।

3

मैं एंथनी की राय से सहमत हूं कि आपको अपने एएसपी पृष्ठों के शीर्ष पर विकल्प स्पष्टीकरण का उपयोग करना चाहिए।

मुझे लगता है कारण एक लापता या दोषपूर्ण है फ़ाइल

शामिल मैं

<!-#include file="include-functions.asp"--> 


include-functions.asp 
<% 
Function UnChkString(string)  
UnChkString = Replace(string,"[%]","%")  
UnChkString = HTMLDecode(UnChkString) 
End Function 
%> 


index.asp 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
</head> 
<body> 
    <!--#include file="include-functions.asp"--> 
<% 

Dim solution_desc 
solution_desc = "&lt;p&gt;Here is a description of what this solution is all  about.&lt;/p&gt;" 


Function HTMLDecode(sText)  
Dim I  
sText = Replace(sText, "&amp;" , Chr(38))  
sText = Replace(sText, "&amp;" , "&")  
sText = Replace(sText, "&quot;", Chr(34))  
sText = Replace(sText, "&rsquo;", Chr(39))  
sText = Replace(sText, "&lt;" , Chr(60))  
sText = Replace(sText, "&gt;" , Chr(62))  
sText = Replace(sText, "&nbsp;", Chr(32))  
For I = 1 to 255   
sText = Replace(sText, "&#" & I & ";", Chr(I))  
Next  
HTMLDecode = sText 
End Function 

%> 
<%= UnChkString(solution_desc) %> 
</body> 
</html> 
करने के लिए इसे बदलने के द्वारा जहाँ मैं या तो

<!--#include file="include-functions.asp"--> 

हटाने या malform कॉल नीचे कोड के साथ इस को दोहराने कर सकते हैं

संबंधित मुद्दे