2010-10-26 9 views
5

मुझे कुछ ऐसा सामना करना पड़ रहा है जिसे मैं नहीं जानता कि कहां से शुरू करना है।एचटीएमएल मेरे डेटाबेस में!

वर्तमान में मेरी वेबसाइट पर एक समाचार अनुभाग है, समाचार डेटाबेस में जोड़ा गया है। हालांकि, यह बहुत सुस्त है और इसमें कोई स्वरूपण नहीं है!

मैं व्यवस्थापक को कैसे बोल्ड या रेखांकित करने और रंग आदि बनाने के लिए समाचार जोड़ने की अनुमति दे सकता हूं। क्या यह डेटाबेस में इसे सामान्य रूप से सहेजना संभव होगा।

क्षमा करें अगर यह वास्तव में मूर्ख सवाल है, लेकिन ऐसा कुछ है जो मैंने पहले नहीं किया है!

धन्यवाद

+3

एक्सएसएस हमले से सावधान रहें। – Joshua

उत्तर

2

जबकि आप एचटीएमएल को अपने डेटाबेस में डाल सकते हैं और सामान्य एनकोड चरण के बिना इसे सीधे प्रदर्शित कर सकते हैं जिसे आप एचटीएमएल में टेक्स्ट आउटपुट करने का उपयोग करेंगे, मैं तब तक इसकी अनुशंसा नहीं करता जब तक कि आप सामग्री में प्रवेश करने वाले हर किसी पर भरोसा न करें।

मेरा मतलब है कि सुरक्षा में विश्वास न करें (क्योंकि कोई भी जो आपके पृष्ठ में एचटीएमएल डालने में सक्षम होगा, स्क्रिप्ट इंजेक्शन के माध्यम से साइट के अन्य उपयोगकर्ताओं के उपयोग को लेने में सक्षम होगा), लेकिन क्षमता भी: यह केवल एक भटक लेता है पृष्ठ लेआउट पूरी तरह से नली करने के लिए <div> या अन्य समान मार्कअप गलती अनलॉक।

एक संभावित एचटीएमएल सबमिशन का उपयोग करके एक मजबूत HTML टिडर और 'शोधक' का उपयोग करके केवल ज्ञात-सुरक्षित मार्कअप को अनुमति देने की संभावना है। यह एक मुश्किल काम है, इसलिए इसे करने के लिए मौजूदा पुस्तकालय का उपयोग करें। वैकल्पिक रूप से, और शायद अधिक उपयोगी रूप से, आप स्वयं की एक साधारण मार्कअप भाषा प्रदान कर सकते हैं। उदाहरण के लिए *italic*, **bold**, http:​//www.example.com/ ->इटालिक, बोल्ड, http://www.example.com/

इनमें से बहुत कम मार्कअप भाषाएं हैं। एक स्टैक ओवरफ़्लो का उपयोग करता है, कि मैं अभी इस बॉक्स में टाइप कर रहा हूं, इसे Markdown कहा जाता है।

(मार्कडाउन मेरा पसंदीदा नहीं है, मुख्य रूप से क्योंकि सामान्य कार्यान्वयन में यह एचटीएमएल सामग्री को मार्कअप के अंदर ही अनुमति देता है, जो थोड़ा बदसूरत है और जब लोग टैग के बारे में बात करने की कोशिश करते हैं तो उन्हें समस्याएं मिलती हैं।लेकिन यह एक लोकप्रिय उदाहरण है; वहाँ बहुत अधिक हैं: बीबीकोड, रीस्ट, वस्त्र आदि ...)

1

एक रूप है जो नियंत्रक ने कुछ अजीब एचटीएमएल बनाने के लिए अनुमति देगा का उपयोग कर सकते करने के लिए CKEditor जोड़ा जा रहा है। सीकेडडिटर सेटअप और उपयोग करने के लिए सुपर आसान है। जब आप अपने वर्तमान एचटीएमएल के साथ करते हैं तो आप इसे आउटपुट से डाटाबेस में सहेज सकते हैं।

+1

सचमुच दर्जनों विभिन्न संपादक उपलब्ध हैं। सीकेडिटर एक ऐसा काम है जो एक बहुत अच्छा काम करता है। सीके के लिए – NotMe

1

ज़रूर:

INSERT INTO tbl (html_text) values ('<h1>Hello, world.</h1>') 

(। आप निश्चित रूप से, पैरामिट्रीकृत प्रश्नों का उपयोग करना चाहिए)

1

वे डेटा दर्ज में HTML के रूप में आप एक varchar (max) के रूप में डीबी में संग्रहीत कर सकते हैं और आपको ठीक होना चाहिए, जब तक यह HTML के रूप में पार्स किया जाता है जब तक यह बाहर आता है (यानी एक वेबपृष्ठ में)। अन्यथा, यदि इसे सादे-पाठ के रूप में पार्स किया गया है तो आप सभी HTML टैग देखेंगे।

1

आप किसी भी पाठ के प्रारूप को लागू करने के लिए कार्यक्षमता प्रदान करने के लिए समृद्ध टेक्स्ट संपादकों का उपयोग कर सकते हैं। फिर आप इसे डीबी में सहेज सकते हैं, जैसे आप सादा पाठ करेंगे।

बस अपने आउटपुट को HTML एन्कोड करना सुनिश्चित करें।

मैं अपने समृद्ध टेक्स्ट एडिटर के लिए CKEditor पसंद करता हूं। बहुत मजबूत, परिपक्व, और पार मंच।

+0

+1। यह एकमात्र संपादक है जो वर्ड एचटीएमएल से बॉक्स के बाहर, फ्रंट एंड पर प्रभावी ढंग से आपकी सुरक्षा करता है। यदि आपने कभी भी उस गड़बड़ी के साथ उलझन नहीं किया है, तो यह सीएमएस की ओवरराइंग टेक्स्ट फ़ील्ड्स को नष्ट कर सकता है और बिना किसी अतिरिक्त ओवरहेड के धीमे चीजों को धीमा कर सकता है। – bpeterson76

+0

सहमत हैं, शब्द सामग्री साफ़ नहीं की जाएगी आप साइट डिज़ाइन को नष्ट कर देंगे! –

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