दिलचस्प पोस्ट
अनिवंड सेगेज क्या हैं और आप उनका उपयोग कैसे करते हैं? कैसे MATLAB समारोह के कुछ वापसी मूल्यों को सुंदर ढंग से अनदेखा करें? सी ++ में एक हेडडर फाइल में "नेमस्पेस का उपयोग करना" एक बुरा विचार क्यों शामिल है? Oracle का प्रयोग करके थोक। NET का प्रयोग करें कैसे जावा में एक बहुआयामी ArrayList बनाने के लिए? ऑब्जेक्ट सीरियलाइजेशन के लिए उपलब्ध डेल्फी जेसनॉन लाइब्रेरी onclick विकल्प टैग IE और क्रोम पर काम नहीं कर रहा है कुकीज़ के साथ उद्देश्य-सी असिंक्रोनस वेब अनुरोध एंड्रॉइड के साथ चालक जेडीबीसी पोस्टग्रेएसक्यूएल ASP.NET WebAPI में एक फ़ाइल (FileContentResult) को वापस कैसे करें उसी लाइन पर नए आउटपुट प्रिंट करें आंकड़ा टिक में घातीय स्वरूपण को दबाएं मैं पंडों के साथ एक डाटाफ्रेम से टेस्ट और ट्रेन के नमूने कैसे बना सकता हूं? कुछ कोड को प्रत्येक एन सेकेंड चलाएं क्या PHP में __DIR__ और dirname (__ FILE__) में कोई अंतर है?

CodeIgniter अस्वीकृत कुंजी वर्ण

CodeIgniter मुझे एक Disallowed Key Characters त्रुटि दे रहा है मैंने इसे एक फार्म फ़ील्ड के नाम विशेषता के नीचे संकुचित किया है: name='prod[50-4121.5]' लेकिन मुझे यकीन नहीं है कि इसके बारे में क्या करना है

Solutions Collecting From Web of "CodeIgniter अस्वीकृत कुंजी वर्ण"

समस्या यह है कि आप मानक रेगेक्स में वर्णित वर्णों का उपयोग नहीं कर रहे हैं। इसे इस्तेमाल करो:

!preg_match("/^[a-z0-9\x{4e00}-\x{9fa5}\:\;\.\,\?\!\@\#\$%\^\*\"\~\'+=\\\ &_\/\.\[\]-\}\{]+$/iu", $str)

टिप्पणियों (और व्यक्तिगत अनुभव) के अनुसार आपको उन्हें Input.php फ़ाइल में संशोधन नहीं करना चाहिए – इसके बजाय, आपको अपने खुद के MY_Input.php को बनाने / उपयोग करना चाहिए:

 <?php class MY_Input extends CI_Input { /** * Clean Keys * * This is a helper function. To prevent malicious users * from trying to exploit keys we make sure that keys are * only named with alpha-numeric text and a few other items. * * Extended to allow: * - '.' (dot), * - '[' (open bracket), * - ']' (close bracket) * * @access private * @param string * @return string */ function _clean_input_keys($str) { // UPDATE: Now includes comprehensive Regex that can process escaped JSON if (!preg_match("/^[a-z0-9\:\;\.\,\?\!\@\#\$%\^\*\"\~\'+=\\\ &_\/\.\[\]-\}\{]+$/iu", $str)) { /** * Check for Development enviroment - Non-descriptive * error so show me the string that caused the problem */ if (getenv('ENVIRONMENT') && getenv('ENVIRONMENT') == 'DEVELOPMENT') { var_dump($str); } exit('Disallowed Key Characters.'); } // Clean UTF-8 if supported if (UTF8_ENABLED === TRUE) { $str = $this->uni->clean_string($str); } return $str; } } // /?/> /* Should never close php file - if you have a space after code, it can mess your life up */ 

++ चीनी चरित्र समर्थन

 // NOTE: \x{4e00}-\x{9fa5} = allow chinese characters // NOTE: 'i' — case insensitive // NOTE: 'u' — UTF-8 mode if (!preg_match("/^[a-z0-9\x{4e00}-\x{9fa5}\:\;\.\,\?\!\@\#\$%\^\*\"\~\'+=\\\ &_\/\.\[\]-\}\{]+$/iu", $str) { ... } // NOTE: When Chinese characters are provided in a URL, they are not 'really' there; the browser/OS // handles the copy/paste -> unicode conversion, eg: // 一二三 --> xn--4gqsa60b // 'punycode' converts these codes according to RFC 3492 and RFC 5891. // https://github.com/bestiejs/punycode.js --- $ bower install punycode 

खुला libraries/Input.php (सीआई संस्करण 2.0+ में system/core/Input.php ) और function _clean_input_keys($str){ पता function _clean_input_keys($str){ , पूरे ब्लॉक ऐसा दिखना चाहिए:

 function _clean_input_keys($str) { if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { exit('Disallowed Key Characters.'); } return $str; } 

पीसीआरई सॉट को संशोधित करें जो इसे नए वर्णों की अनुमति देता है।

कृपया नहीं है कि चार चीजें याद आ रही है . (डॉट) और आपको हमेशा से बचाना चाहिए . (डॉट) रेग्युलर एक्सप्रेशंस में, क्योंकि वे किसी भी एकल कोच की अनुमति देते हैं।

 /^[a-z0-9:_\/-\.]+$/i 

JQuery अजाक्स के साथ CodeIgniter का उपयोग करने के लिए, नीचे दिए गए क्वेरी स्ट्रिंग के बजाय डेटा के रूप में "ऑब्जेक्ट" का उपयोग करें:

 $.ajax({ url: site_url + "ajax/signup", data: ({'email': email, 'password': password}), //<--- Use Object type: "post", success: function(response, textStatus, jqXHR){ $('#sign-up').html(response); }, error: function(jqXHR, textStatus, errorThrown){ console.log("The following error occured: "+ textStatus, errorThrown); } }); 

पीपीपी [] कोष्ठक के बीच जो आपने लिखा है उसका मूल्यांकन करेंगे।

 $foo = array('eins', 'zwei', 'apples', 'oranges'); var_dump($foo[3-1]); 

string(6) "apples" उत्पादन करेगा, क्योंकि यह $ foo देता है [2]

यदि आप चाहते हैं कि एक स्ट्रिंग के रूप में, इसके चारों ओर उल्टे अल्पविराम रखें।

एक अमीर टेक्स्ट एडिटर से डेटा भेजते समय मुझे यह त्रुटि मिली, जहां मैंने एक एम्परसेंड शामिल किया था। एम्परसेंड को% 26 से बदलकर – एम्पर्ससेंड का यूआरएल एन्कोडिंग – समस्या हल हो गई। मुझे यह भी पता चला है कि एक jQuery के एजेक्स अनुरोध की तरह विन्यस्त इस जादुई समस्या का हल:

 request = $.ajax({ "url": url, type: "PUT", dataType: "json", data: json }); 

जहां वस्तु json है, आश्चर्य, आश्चर्य, एक JSON ऑब्जेक्ट जिसमें एक एम्पर्ससेंड वाला मान है

 function _clean_input_keys($str) { if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { exit('Disallowed Key Characters.'); } return $str; } 

कृपया बाहर निकलने के लिए $ str जोड़ें। ('अस्वीकृत कुंजी वर्ण'।); जैसे: बाहर निकलें ('अस्वीकृत कुंजी वर्ण'। $ Str);

दुष्ट त्रुटियों के लिए आपकी खोज में मदद करने के लिए

मेरा एक रूप पोस्ट करने के बाद मेरे पास यही त्रुटि थी मैं अपने इनपुट नाम विशेषताओं में से एक में उद्घाटन उद्धरण को केवल याद किया। मैंने लिया:

<input name=first_name">

फिक्सिंग ने त्रुटि से छुटकारा दिलाया

खुली libraries/Input.php ( CI version 2.0+ में system/core/Input.php ) और फ़ंक्शन _clean_input_keys($str){ ,

if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) if ( ! preg_match("/^[a-z0-9:_\-|]+$/i", $str))

मुझे फ्रांसीसी विशेष वर्णों के लिए वही समस्या थी अगर किसी को इसकी ज़रूरत होती है तो यह मेरी कक्षा है इसे यहां सहेजा जाना है: /application/core/MY_Input.php

(भविष्य में भी यह एक्सटेंशन चुड़ैल चरित्र की अनुमति नहीं है)

 वर्ग MY_Input CI_Input विस्तारित करता है { 

function __construct() { parent::__construct(); } /** * Clean Keys * * This is a helper function. To prevent malicious users * from trying to exploit keys we make sure that keys are * only named with alpha-numeric text and a few other items. * * @access private * @param string * @return string */ function _clean_input_keys($str) { if ( ! preg_match("/^[a-z0-9:_\/-àâçéèêëîôùû]+$/i", $str)) { exit('Disallowed Key Characters : '.$str); } // Clean UTF-8 if supported if (UTF8_ENABLED === TRUE) { $str = $this->uni->clean_string($str); } return $str; }

}

कोर क्लास एक्सटेंशन के बारे में फ्रेंडली मैनुअल पढ़ें: http://ellislab.com/codeigniter/user-guide/general/core_classes.html

चरण 1। /system/core/Input.php पर फ़ंक्शन _clean_input_keys के लिए खोजें

चरण 2। इस रेखा को संशोधित करें

बाहर निकलें ('अस्वीकृत कुंजी वर्ण'।);

सेवा मेरे

बाहर निकलें ('अस्वीकृत कुंजी वर्ण'। $ str);

चरण 3। त्रुटि उत्पन्न करने वाले पात्रों को देखने के लिए पेज रिफ्रेश करें

चरण 4। यदि आपको उन वर्णों को अपवाद सूची में जोड़ने की आवश्यकता है, तो बस इस पंक्ति में जोड़ें

अगर (! preg_match ("/ ^ [a-z0- 9: _ / -] + $ | / i", $ str))

मैं जोड़ता हूं | (पाइप) चरित्र ऊपर के उदाहरण पर

मेरा एक रूप पोस्ट करने के बाद मेरे पास यही त्रुटि थी उनके पास मेरे इनपुट नाम विशेषताओं में जगह है इनपुट नाम = 'प्रथम_नाम'

फिक्सिंग ने त्रुटि से छुटकारा दिलाया

मेरे मामले में, मैं jquery serialize () का उपयोग करके एक इनपुट फॉर्म serializing कर रहा था और फिर इसे encodeurIComponent () का उपयोग करके urlencoding।

 var datas = form.serialize(); encodeURIComponent(datas); $.getJSON(url,datas,function(){}); 

और कोडिनेटर अस्वीकृत वर्ण त्रुटि दे रहा था

मुझे लगा कि यह मुद्दा यहां था, jquery serialize एक एन्कोडेड आउटपुट देता है और मैं इसे फिर से एनकोडयूआरआईएम्प्नेंट के साथ एन्कोड कर रहा था जो कि अनावश्यक था, और जब कोडिंगर ने इसे डीकोड किया तो इसे वास्तविक स्ट्रिंग नहीं मिल रहा था क्योंकि कुछ हिस्से को दो बार इनकोड किया गया था। मैं इसे एक उदाहरण के साथ समझाऊँगा

 string: quantity[]=1&option=sell urlencoded while serializing: quantity%5B%5D%3D1%26option%3Dsell again urlencoded with encodedURICompontent(): quantity%255B%255D%253D1%2526option%253Dsell 

— codeigntier पर

 urldecode: quantity%5B%5D=1&option=sell 

जिसने इनपुट क्लास रेगेक्स के अनुसार वर्णकों को अनुमति नहीं दी है।

ध्यान दें: यह इस प्रश्न का उत्तर नहीं है, लेकिन यह जांचने में मदद मिलेगी कि क्या कोई इस त्रुटि का सामना कर रहा है … धन्यवाद।

उबंटू में, आप अपने ब्राउज़र की कुकीज़ को साफ करके समस्या का समाधान कर सकते हैं। मुझे एक ही समस्या थी और इसे इस तरह हल किया गया था।

यह एक बाहर निकालने के लिए कुछ समय लगा। हम में से ज्यादातर को स्पष्ट त्रुटि याद है … आखिरी "-" बच नहीं है

जोड़ना और | जैसा कि मैंने देखा है कि अन्य सुझाव आपके लिए काम कर सकते हैं, लेकिन regex माना जाता था:

 if ( ! preg_match("/^[a-z0-9:_\/\-\.|]+$/i", $str)) 

मैंने इस त्रुटि को देखा जब मैं एक फ़ॉर्म भेजने का प्रयास कर रहा था, और एक फ़ील्ड के नामों में, मैं "एंडिएस्को" शब्द को छोड़ देता हूं।

 echo form_input(array('class' => 'form-control', 'name' => 'endereco', 'placeholder' => 'Endereço', 'value' => set_value('endereco'))); 

जब मैंने 'सी' के लिए 'ç' बदल दिया, तो त्रुटि समाप्त हो गई थी।

मुझे यह समस्या थी लेकिन मेरी समस्या यह थी कि मैंने गलती से इस तरह के इनपुट के नाम से पहले स्थान जोड़ा:

 <input type="text" name=" evening_time_phone"> 

जब यह इस तरह से हो सकता है:

 <input type="text" name="evening_time_phone"> 

मैं संदर्भित त्रुटि सिस्टम / पुस्तकालयों / Input.php (लाइन 215 के बारे में – फ़ंक्शन _clean_input_keys ($ str) के लिए देखो में उत्पन्न किया गया था

रैगेक्स वहाँ एक सूचकांक में डॉट वर्ण की अनुमति नहीं देता है। मैंने इसे बदल दिया है, इसलिए यह होगा

मेरे पास एक ही समस्या है और मैंने पाया है कि यह उस ईमेल पते के डोमेन नाम में है, जिसे किसी तरह से बदल दिया गया है . _ पसंद करें: name@domain_com बजाय name@domain_com

मेरे अनुभव में, यह अपूर्ण वाक्यविन्यास के कारण हो सकता है, जैसे:

 $('#teks').val 

के बजाय

 $('#teks').val() 

_clean_input_keys फ़ंक्शन में कोड को नीचे बदलें

  if ( ! preg_match("/^[a-z0-9:_\/-]+$|/i", $str)) { exit('Disallowed Key Characters.\n'); } if (UTF8_ENABLED === TRUE) { $str = $this->uni->clean_string($str); } return $str;