2012-09-10 23 views
12

यह साइट अब कई महीनों से रही है और ठीक काम कर रही है। मेरे पास एक PHP पृष्ठ है जो यूआरएल में डेटा से चालान बनाता है (उदा। Viewinvoice.php? Id = 250 रिकॉर्ड 250 के आधार पर एक चालान बनाता है)। यह पृष्ठ किसी वेब ब्राउज़र के माध्यम से सुलभ है और ठीक काम करता है।स्थानीय फ़ाइल तक पहुंचने का प्रयास करते समय झूठी वापसी के लिए कर्ल का कारण क्या होगा?

एक पूरी तरह से अलग पृष्ठ पर (यानी test.php) मैं उस फ़ाइल को curl के माध्यम से एक्सेस करने का प्रयास कर रहा हूं। हालांकि, जब मैं कॉल करता हूं और परिणामों को var_dump करता हूं, तो मुझे बूल (झूठा) मिलता है।

यहाँ समारोह cURL कॉल बनाता है:

function file_get_contents_curl($url) { 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 

$data = curl_exec($ch); 
curl_close($ch); 

return $data; 
} 

घर एक निरंतर है कि पूर्ण url (उदा http://www.example.com/) को दर्शाता है।

$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242'); 
echo $invoice_contents; 
var_dump($invoice_contents); 

मैं एक बाहरी यूआरएल (अर्थात http://www.google.com/) और पृष्ठ लोड ठीक करने के लिए यूआरएल को बदलने की कोशिश की है। मुझे Google का होम पेज मिलता है। लेकिन एक ही डोमेन में मौजूद कोई भी पृष्ठ लोड नहीं होगा। क्या ऐसा कोई कारण है कि ऐसा होगा?

मैं सर्वर व्यवस्थापक नहीं हूं, लेकिन मेरे पास सर्वर तक रूट पहुंच है। मैंने हाल ही में कोई सेटिंग नहीं बदली है, लेकिन सर्वर व्यवस्थापक ने अपाचे या PHP के संस्करण को अपग्रेड कर दिया हो सकता है?

किसी भी मामले में, क्या कोई ऐसी सेटिंग है जिसे मैं इस काम को फिर से बनाने के लिए संशोधित कर सकता हूं?

पीएस मैंने बस एक बाहरी सर्वर (अलग डोमेन) से यह सटीक कॉल करने का प्रयास किया और यह ठीक काम करता है।

echo curl_getinfo($ch) . '<br/>'; 
echo curl_errno($ch) . '<br/>'; 
echo curl_error($ch) . '<br/>'; 

आप क्या अपने कर्ल निष्पादन के दौरान विफल रहा है देखेंगे:

उत्तर

36

अपने कर्ल निष्पादन के बाद, कुछ इस तरह डाल दिया।

और जानकारी: curl_getinfocurl_errnocurl_error

+1

मैं इन पंक्तियों जोड़ा परीक्षण करने के लिए इस चर डाल दिया और अनुरोध के बारे में और अधिक देखने में सक्षम था। मैं निश्चित रूप से भविष्य में इस दृष्टिकोण का उपयोग करूँगा। दुर्भाग्य से, समस्या को हल करने से पहले समस्या हल हो गई, इसलिए कोई त्रुटि मौजूद नहीं थी। साइट पहले काम करने के लिए वापस चला गया। मैंने कभी सोचा नहीं कि मैं कहूंगा कि मेरी इच्छा है कि यह अभी भी टूटा हुआ था, लेकिन चूंकि मुझे नहीं पता कि क्या गलत हुआ ... मेरी इच्छा है कि यह था। यदि यह फिर से होता है, तो मैं इस जानकारी का उपयोग करना सुनिश्चित कर दूंगा। – codescribblr

2

निष्पादन के बाद सिर्फ curl_close ($ ch) से पहले अपने त्रुटियों

echo "<pre>"; 
var_dump(curl_getinfo($ch)) . '<br/>'; 
echo curl_errno($ch) . '<br/>'; 
echo curl_error($ch) . '<br/>';