दिलचस्प पोस्ट
jQuery के चयनित रेडियो बटन का मूल्य मिलता है नियमित अभिव्यक्तियों के साथ मिलान करने वाले नंबर – केवल अंक और अल्पविराम लिबकोर को विजुअल स्टूडियो 2013 के साथ काम करना फ़ंक्शन घोषणा के अंत में "कॉन्स्ट" के साथ क्या होता है? विधियों के स्थिर आयात के लिए एक अच्छा उपयोग क्या है? PHP ओपीकाचे का उपयोग कैसे करें? कंस्ट्रक्टरों का भर्ती करना एंड्रॉइड में टैब के भीतर गतिविधियों को लॉन्च करना जावा में अजीब पूर्णांक मुक्केबाजी आईओएस एप के लिए गैर-अंग्रेज़ी डिफ़ॉल्ट भाषा? जीआईएफ / जेपीजी / पीएनजी / पीडीएफ के रूप में एचटीएमएल कैनवास कैप्चर करें? संबंधित वस्तु कब जारी होती है? एमवीवीएम पैटर्न का उपयोग करके प्रगति पट्टी को कैसे लागू किया जाए ठीक से एक सूची से एक पूर्णांक निकालें <पूर्णांक> जावास्क्रिप्ट में आप एक स्टैक और कतार कैसे लागू करते हैं?

कैसे केवल एकल उद्धरणों से बचने के लिए?

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

<script type="text/javascript"> $('#myElement').html('say hello to <?php echo $mystringWithSingleQuotes ?>'); </script> 

वेब के समाधान से एकत्रित समाधान "कैसे केवल एकल उद्धरणों से बचने के लिए?"

काफी सरल: echo str_replace('\'', '\\\'', $myString); हालांकि, मैं JSON और json_encode() फ़ंक्शन का उपयोग करने का सुझाव देता हूं क्योंकि यह अधिक विश्वसनीय होगा (उदाहरण के लिए नई पंक्तियां उद्धरण):

 <?php $data = array('myString' => '...'); ?> <script> var phpData = <?php echo json_encode($data) ?>; alert(phpData.myString); </script> 
 str_replace("'", "\'", $mystringWithSingleQuotes); 

केवल एकल उद्धरणों को बदलने के लिए, इस सरल कथन का उपयोग करें:

 $string = str_replace("'","\\'", $string); 

कुछ मामलों में, मैं इसे केवल एंटिटीज़ में परिवर्तित कर देता हूं:

  //ie $x= ABC\DEFGH'IJKL $x= str_ireplace("'", "&apos;", $x); $x= str_ireplace("\\", "&bsol;", $x); $x= str_ireplace('"', "&quot;", $x); 

HTML पृष्ठ पर, दृश्य आउटपुट एक ही है:

 ABC\DEFGH'IJKL 

हालांकि, स्रोत में यह साफ है

यदि आप वर्णों से बचने के लिए चाहते हैं तो आपके पास addcslashes() उदाहरण के लिए addcslashes() यदि आप केवल सिंगल उद्धरणों से बच सकते हैं जैसे प्रश्न आप कर सकते हैं:

 echo addcslashes($value, "'"); 

और अगर आप ' , " , \ और nul (बाइट नल) से बचने के लिए चाहते हैं तो आप addslashes() उपयोग कर सकते हैं:

 echo addslashes($value); 

लंबे समय से इस समस्या से लड़ने के बाद, मुझे लगता है कि बेहतर समाधान मिला है

दो कार्यों को जोड़ना संभव है HTML के रूप में उपयोग करने के लिए एक स्ट्रिंग से बचें।

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

उपाय:

 mysql_real_escape_string(htmlspecialchars($string)) 

समाधान:

  • जैसे एक जावास्क्रिप्ट समारोह फोन करने के लिए बनाया एक php

गूंज 'onclick = "javascript_function (\'। mysql_real_escape_string (htmlspecialchars ($ स्ट्रिंग))"

सुनिश्चित नहीं है कि आप अपने डेटा के साथ क्या कर रहे हैं, लेकिन आप हमेशा कोशिश कर सकते हैं:

$ string = str_replace ("'", "% 27", $ स्ट्रिंग);

मैं इसका उपयोग तब भी करता हूं जब स्ट्रिंग को संग्रहण के लिए डेटाबेस में भेजा जाता है। % 27 'वर्ण के लिए एन्कोडिंग है, और यह भी GET अनुरोधों के विघटन को रोकने में मदद करता है यदि कोई एकल वर्ण आपके सर्वर पर भेजा गया स्ट्रिंग में शामिल होता है मैं 'जावास्क्रिप्ट और PHP में दोनों के साथ'% 27 'की जगह लेगा, अगर किसी को मैन्युअल रूप से अपने PHP फ़ंक्शन पर कुछ डेटा भेजने की कोशिश करता है। इसे अपने अंतिम उपयोगकर्ता के लिए सुंदर बनाने के लिए, बस अपने सर्वर से वापस आने वाले सभी डेटा के लिए एक प्रतिलोम प्रतिस्थापन फ़ंक्शन चलाएं और सभी% 27 सबस्ट्रिंग को 'के साथ बदलें'।

खुश इंजेक्शन से बचने!

मैंने निम्नलिखित फ़ंक्शन को लिखा था यह निम्नलिखित की जगह लेता है:

एकल बोली ['] स्लेश और एकल उद्धरण [\] के साथ

दो बैकस्लैश [\\] के साथ बैकस्लैश [\]

 function escapePhpString($target) { $replacements = array( "'" => '\\\'', "\\" => '\\\\' ); return strtr($target, $replacements); } 

आप $ प्रतिस्थापन सरणी में वर्ण प्रतिस्थापन जोड़ने या हटाने के लिए इसे संशोधित कर सकते हैं। उदाहरण के लिए, \ r \ n को बदलने के लिए यह "\ r \ n" => "\ r \ n" और "\ n" => "\ n" हो जाता है।

 /** * With new line replacements too */ function escapePhpString($target) { $replacements = array( "'" => '\\\'', "\\" => '\\\\', "\r\n" => "\\r\\n", "\n" => "\\n" ); return strtr($target, $replacements); } 

स्ट्रट्र के बारे में साफ सुवक्ता यह है कि यह लंबे प्रतिस्थापन को पसंद करेगा। उदाहरण, "कूल \ r \ n फ़ेचर" से बचने के बजाय \ n \ n \ n बच जाएगा

यहाँ देखें कि मैंने यह कैसे किया। मूर्ख, लेकिन सरल

 $singlequote = "'"; $picturefile = getProductPicture($id); echo showPicture('.$singlequote.$picturefile.$singlequote.'); 

मैं HTML को आउटपुट करने पर काम कर रहा था जो कि एक तस्वीर दिखाने के लिए जावास्क्रिप्ट कोड कहलाता है …