2012-04-30 13 views
7

जब मैं किसी भी रूप में कुछ भी अपलोड करना चाहता हूं तो मुझे चेतावनी दिखाई दे रही है: escapeshellarg() को मेरी साइट पर संदेश सुरक्षा कारणों से अक्षम कर दिया गया है। मुझे इसे ठीक करने के लिए क्या करना चाहिए?escapeshellarg() सुरक्षा कारणों से

मेरा ढांचा कोडनिर्देशक अंतिम संस्करण है।

A PHP Error was encountered 

Severity: Warning 

Message: escapeshellarg() has been disabled for security reasons 

Filename: libraries/Upload.php 

उत्तर

1
  1. php.ini * फ़ाइल

  2. पर disable_functions से escapeshellarg स्ट्रिंग निकालें अपने होस्टिंग प्रदाता से पूछें कि आप डॉन ऊपर स्ट्रिंग दूर करने के लिए:

    यहाँ पूर्ण चेतावनी है php.ini * फ़ाइल

  3. होस्टिंग प्रदाता को बदलें जो escapeshellarg फ़ंक्शन को चलाने की अनुमति देता है।

इस वेबसाइट से

: http://www.2by2host.com/articles/php-errors-faq/disabled_escapeshellarg/

6

प्रयास करें

$cmd = 'file --brief --mime ' . @escapeshellarg($file['tmp_name']) . ' 2>&1'; 
से प्रणाली/पुस्तकालयों फ़ोल्डर

ओपन Upload.php फ़ाइल और लाइन 1066 पर escapeshellarg($file['tmp_name']) के सामने @ रख दिया और दूसरी बात यह अपलोड आवेदन/पुस्तकालय फ़ोल्डर के तहत फ़ाइल जो बेहतर होगी, अन्यथा कोई समस्या नहीं है, आप सिस्टम की Upload.php फ़ाइल को प्रतिस्थापित कर सकते हैं।

+0

धन्यवाद, आज यह त्रुटि मिली और आपका उत्तर एक आकर्षण की तरह काम करता था! –

+2

जो सिर्फ चेतावनी को अनदेखा करता है – Waqleh

6

"@" किसी भी PHP त्रुटियों को चुप कर देगा जो फ़ंक्शन उठा सकता है। यह

समाधान कभी नहीं का उपयोग करें:

1- php.ini फ़ाइल

2- में disable_functions से escapeshellarg स्ट्रिंग निकालें आपके मेजबान प्रदाता से दूर करने के लिए php में disable_functions से escapeshellarg स्ट्रिंग निकालें .ini फ़ाइल अगर आपके पास php.ini फ़ाइल

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

function my_escapeshellarg($input) 
{ 
    $input = str_replace('\'', '\\\'', $input); 

    return '\''.$input.'\''; 
} 

और करना कुछ इस तरह:

//$cmd = 'file --brief --mime ' . escapeshellarg($file['tmp_name']) . ' 2>&1'; 
    $cmd = 'file --brief --mime ' . $this->my_escapeshellarg($file['tmp_name']) . ' 2>&1'; 

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

2

चाहते की कोर पर बदलने की _file_mime_type समारोह बस development से production करने के लिए अपने आवेदन के लिए कदम: आपके आवेदन जड़ में

ओपन index.php और बदल

define('ENVIRONMENT', 'development'); 

से

define('ENVIRONMENT', 'production'); 
संबंधित मुद्दे