2011-03-22 19 views
7

मुझे किसी अन्य php फ़ाइल के अंदर एक php कॉल करने और कुछ तर्क भी पास करने की आवश्यकता है। मैं यह कैसे कर सकता हूँ?? मैंतर्क फ़ाइल पास करते समय php फ़ाइल को दूसरी php फ़ाइल को कॉल करना

include("http://.../myfile.php?file=$name"); 
  • कोशिश की, लेकिन पहुँच से मना कर देता है। मैं पढ़ता हूं जैसे v को allow_url_open को बंद नहीं करना चाहिए।

अगर मैं की तरह

$cmd = "/.../myfile.php?file=".$name"; 
$out =exec($cmd. " 2>&1"); 
echo $out; 
  • लिखने /.../myfiles.php?file=hello के रूप में त्रुटि देता है: ऐसा कोई फ़ाइल या निर्देशिका।

मैं इसे कैसे हल कर सकता हूं ???

+2

वास्तव में क्या कर तुम क्या करने की जरूरत है। वर्तमान स्क्रिप्ट के अंदर निष्पादन के लिए PHP का एक ब्लॉक प्राप्त करें, या वर्तमान स्क्रिप्ट से कोई कनेक्शन नहीं होने के साथ बाहरी स्क्रिप्ट चलाएं? – Unicron

+0

'curl' का उपयोग करें और' allow_url_open' चालू करें – diEcho

+0

क्या यह php फ़ाइल उसी सर्वर पर स्थित है? –

उत्तर

14

आपको अपनी शामिल फ़ाइलों में कुछ भी पास करने की आवश्यकता नहीं है, कॉलिंग दस्तावेज़ से आपके चर डिफ़ॉल्ट रूप से उपलब्ध होंगे;

File1.php

<?php 

$variable = "Woot!"; 
include_file "File2.php"; 

File2.php

<?php 
echo $variable; 
+1

यह सही है, मूल रूप से PHP केवल दस्तावेजों को जोड़ता है ताकि पहले घोषित किए गए किसी भी चर को –

+0

भी इस सिंटेक्स में शामिल किया जा सके जिसमें फ़ाइल मेरे ऊपर काम न करे। में शामिल हैं ("insert_DB.php"); –

0

आप केवल allow_url_fopen सही पर सेट किया जाता है, और एक ही पैरामीटर की अनुमति देने के लिए यदि आप चर पारित करने के लिए http से अधिक फ़ाइल शामिल कर सकते हैं फाइलों के लिए ...

0

आपको HTTP कनेक्शन के माध्यम से फ़ाइलों को शामिल नहीं करना चाहिए - यह लगभग हमेशा एक गंभीर सुरक्षा समस्या है।

आप इस करना चाहिए, तो आप allow_url_includeऔरallow_url_fopenON करने के लिए सेट करने के लिए है लेकिन ये दोनों ही सिफारिश की प्रक्रिया है।

0

अपने कोड में स्थान गलत है:

$cmd = "/.../myfile.php?file=".$name"; 
संबंधित मुद्दे