2011-06-10 11 views
7

मेरे पास एक PHP स्क्रिप्ट पर कॉल करने वाला एक जावास्क्रिप्ट फ़ंक्शन है। अब तक सब ठीक है। एक समस्या यह होता है जब मैं यह करने के लिए प्रयास करें:PHP त्रुटि - फ़ंक्शन को पुन: प्राप्त नहीं कर सकता

$hike_id = mysql_real_escape_string($_GET['hike_id']); 

जब मैं अपने कनेक्शन फ़ाइल आयात, यह मेरे एक त्रुटि है कि उस फ़ाइल में कार्य करता है पहले से ही परिभाषित किया गया है देता है और त्रुटि यह है:

[Fri Jun 10 12:34:43 2011] [error] [client 75.24.105.18] PHP Fatal error: Cannot redeclare hassuspicioushackerstrings() (previously declared in /home/webadmin/comehike.com/html/connect.php:16) in /home/webadmin/comehike.com/html/connect.php on line 40 

वह त्रुटि जो संदर्भित कर रही है वह एक फ़ंक्शन है जो कनेक्ट स्क्रिप्ट में है।

लेकिन अगर मैं

include '../connect.php'; 

तब हटाने यह सिर्फ मुझे बता देगा कि मैं mysql_real_escape_string समारोह का उपयोग नहीं कर सकते हैं। इसलिए मैं किसी भी विकल्प का उपयोग करने में सक्षम नहीं होने के बीच फंस गया हूं।

+0

आप उस फ़ाइल को शामिल करते हैं जो 'hassuspicioushackerstrings() 'घोषित करता है। मुझे नहीं लगता कि इसे mysql_real_escape_string() –

उत्तर

11

कोशिश include_once '../connect.php'; यह आप केवल इस फ़ाइल

+0

के साथ करना है, शामिल है Ionce चीज चाल है - धन्यवाद! – Genadinik

+1

@ जेनाडिनिक आपको यह भी पढ़ना चाहिए कि @ फोस्को ने आपकी त्रुटि के बारे में क्या लिखा है। अपने प्रोग्राम तर्क को फिर से शुरू करके अपनी त्रुटि को ठीक करने का प्रयास करें, 'include_once' और' required_once' आदर्श नहीं हैं क्योंकि दोनों फ़ाइल को पहले से शामिल/आवश्यक है या नहीं, यह समझने के लिए मूल्यवान सिस्टम संसाधनों का उपभोग करते हैं। – afarazit

+0

कुछ मामलों में बच्चों में से एक php फ़ाइलों में एक अतिरिक्त शामिल कथन हो सकता है, जहां मुझे मेरी त्रुटि मिली। Incude_once इन परिस्थितियों में मदद नहीं करता है। –

3

एक बार शामिल कर रहे हैं आपकी फ़ाइलों पर एक नजर डालें और अपने भी शामिल है ... आपको लगता है कि समारोह की घोषणा कर रहे हैं दो बार, कि त्रुटि है सुनिश्चित करेंगे। इसका MySQL, डेटाबेस कनेक्शन, या mysql_real_escape_string() से कोई लेना देना नहीं है।

आईई। आप फ़ाइल ए और फ़ाइल बी सहित हो सकते हैं, लेकिन फ़ाइल ए में पहले से ही फ़ाइल बी शामिल है ... आप या तो यह पता लगा सकते हैं कि आपके शामिल कहां गलत हैं, या include_once या require_once का उपयोग डबल-लोडिंग से रोकने के लिए करें।

2

संभावना है कि आप फ़ाइल को कई बार शामिल कर रहे हैं। शामिल करने के बजाय requ_once का उपयोग करें।

1

आप mysql_real_escape_string() का उपयोग नहीं कर सकते हैं क्योंकि connect.php आपके डेटाबेस कनेक्शन को सेट करने की संभावना है। मेरा अनुमान है कि इसमें एक और शामिल है (शायद 'functions.php') जिसमें एक ही कार्य है। आप समारोह के आसपास if(!function_exists('hassuspicioushackerstrings')) { और } जोड़ सकता है

समारोह hassuspicioushackerstrings ($ इनपुट) {}

अपने connect.php में

,:

आप शायद कुछ इस तरह की है।

0

किसी अन्य फ़ंक्शन के अंदर कोई फ़ंक्शन कभी भी बनाएं या घोषित न करें। लेकिन आप अभी भी फ़ंक्शन के अंदर अन्य फ़ंक्शंस का उपयोग कर सकते हैं। उदाहरण के लिए निम्नलिखित सही नहीं है

function addition($a, $b) 
{ 
    function subtraction(){ 
    } 
    return $a+$b; 
} 
संबंधित मुद्दे