2012-09-12 18 views
5

मैं एक साधारण ऑर्डर सिस्टम लिख रहा हूं जहां कई संख्याएं (एक फॉर्म के अंदर भर दी गई हैं) किसी अन्य .php फ़ाइल में लिखी गई हैं (.html भी हो सकती है), fopen फ़ंक्शन का उपयोग कर। यह ठीक काम करता है, लेकिन फ़ाइल को लिखने के बाद, मैं चाहता हूं कि ब्राउज़र वास्तव में उस लिखित फ़ाइल को खोलने के लिए, विशेष रूप से नई ब्राउज़र विंडो में खोलें। इस प्रकार मेरा क्लाइंट प्रिंट करने, इनवॉइस के रूप में उपयोग करने के लिए इसका उपयोग कर सकता है।इसे लिखने के बाद एक नई ब्राउज़र विंडो में फ़ाइल खोलें (fopen के साथ)

अब मैं अभी भी php ग्राउंड पर एक रूकी हूं और fopen के उपयोग से अनुभव नहीं कर रहा हूं। लेकिन हर जगह मैं ट्यूटोरियल इत्यादि की तलाश करता हूं, ऐसा कहा जाता है कि fopen एक फाइल खोलता है (या पाठ्यक्रम के बारे में लिखता है), लेकिन यह तब तक नहीं है जब तक मैंने अनुभव किया है। ऐसा लगता है कि निर्दिष्ट लिखित पृष्ठ को वास्तव में प्रदर्शित करने के बजाय, निर्दिष्ट फ़ाइल तक पहुंचने और पढ़ने के लिए अनुमति देता है।

किसी भी भ्रम से बचने के लिए: मैं SO राज्य पर अन्य प्रश्नों जैसे लिंक खोलना नहीं चाहता हूं।

मेरे कोड:

<form action="" method="post"> 
    <input type="text" id="amountTuna" name="numberTuna" value="0"/> 
    <input type="text" id="amountCheese" name="numberCheese" value="0"/> 
    <input name="send" id="send" type="submit" value="Post order" /> 
</form> 

<?php 
if (array_key_exists('send', $_POST)) { 
    $order = "order.php"; 
    $fh = fopen($order, 'w') or die("can't open file");//file handler 

    fwrite($fh, "Tuna sandwiches: " . stripslashes($_POST['numberTuna'])); 
    fwrite($fh, "Cheese sandwiches: " . stripslashes($_POST['numberCheese'])); 

    $fh = fopen($factuur, 'r'); 
    $fileip = fread($fh, filesize($factuur)); 
    fclose($fh); 
} 
?> 

कोशिश कर अलग fopen मापदंडों इस तरह के 'w', 'r', 'r+' आदि के रूप में कोई फर्क नहीं लगता है। fclose($fh) को हटाने से कोई फर्क नहीं पड़ता है।

+0

यह करने की कोशिश की एक आदेश रिकॉर्डिंग की एक अजीब तरीके से प्रतीत होता है है - आप माना जाता है ऑर्डर स्टोर करने के लिए डीबी का उपयोग करना? यह चीजों को एक बहुत आसान रिकॉर्डिंग/प्रदर्शित करने और कुछ फायदे नाम देने के लिए खोज करेगा – ManseUK

+0

आप एक PHP फ़ाइल में क्यों लिखना चाहते हैं ??? – Baba

+0

@ManseUK ठीक है हाँ, मैं बाद में ऐसा करने पर विचार कर सकता हूं। लेकिन विशिष्ट होने के लिए, यह एक वेबशॉप प्रकार की ऑर्डर सिस्टम नहीं है, इसके बजाय दुकान मालिक केवल आदेशित सैंडविच के लिए संख्याओं में भर जाता है और इसे डिलीवरी लड़के को देने के लिए इसे पृष्ठ पर चाहता है, और/या शायद इसे चालान के रूप में उपयोग कर रहा है उसका ग्राहक 'क्लाइंट' वास्तव में मेरा मित्र है इसलिए हम कदम से इस कदम को कर रहे हैं :)। मगर आपकी सलाह के लिए धन्यवाद! – poepje

उत्तर

5

उपयोग जे एस स्क्रिप्ट नई विंडो खोलने के। उदाहरण के लिए सही fclose($fh) के बाद:

echo "<script>window.open($order, '_blank'); window.focus();</script>"; 
+0

धन्यवाद, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है। न तो अगर मैं इसे 'echo' ";' – poepje

+0

लेकिन विंडो खुलती है? यदि ऐसा है - बस पथ की जांच करें और सही डालें। – StasGrin

+0

कोई विंडो खुलती नहीं है - और order.php फ़ाइल ('$ ऑर्डर') एक ही फ़ोल्डर में है। अनुलेख '

2

एक डेटाबेस में बातें भंडारण की संभावना बहुत आसान हो जाएगा।

कहा जाता है कि, फॉपेन का उपयोग फ़ाइल को खोलना है, एक नई ब्राउज़र विंडो में लिखित फ़ाइल खोलने के लिए नई बनाई गई फ़ाइल को लोड करने के लिए कुछ क्लाइंट-साइड स्क्रिप्टिंग (यानी जावास्क्रिप्ट) की आवश्यकता होगी।

गूगल जावास्क्रिप्ट window.open()।

टॉम

+0

धन्यवाद, लेकिन PHP में यह संभव नहीं है? मुझे यह भ्रमित लगता है कि 'fopen' वास्तव में फ़ाइल नहीं खोलता है बल्कि इसके बजाय * फ़ाइल * तक पहुंच है। अगर मैं सही ढंग से समझ रहा हूँ। – poepje

+0

क्षमा करें, मुझे इसे थोड़ा बेहतर समझा जाना चाहिए था। जब कोई ब्राउज़र आपके सर्वर से किसी .php एक्सटेंशन से कनेक्ट होता है तो उसे PHP फ़ाइल के रूप में संसाधित किया जाता है, तो सभी परिणाम वेब ब्राउज़र पर एक सादे HTML पृष्ठ के रूप में भेजे जाते हैं। इस वजह से आप क्लाइंट कंप्यूटर से बातचीत करने के लिए PHP का उपयोग नहीं कर सकते हैं। Fopen() विधि का उपयोग सर्वर पर PHP अनुप्रयोग के लिए फ़ाइल सिस्टम से फ़ाइल को खुलता है और सम्मानित झंडे के साथ पढ़ने/लिखने/संशोधित करने में सक्षम होता है। आशा है कि यह थोड़ा स्पष्ट है! –

+0

मेरा मतलब है कि प्रत्येक ट्यूटोरियल, प्रलेखन इत्यादि। इसे 'फ़ाइल खोलना' कहा जाता है, जबकि मुझे लगता है कि यह वास्तव में ब्राउज़र में खोला जा सकता है, मैं आपकी व्याख्या का जिक्र नहीं कर रहा था;) और अब मैं इसे समझता हूं, मैं इसे रखूंगा दिमाग में: डी – poepje

1

जब से तुम सिर्फ .. छापने लायक पन्ने की लिखना चाहते हैं आप file_put_contents

उदाहरण

if (isset($_POST['send'])) { 
    $file = "test.html"; 
    $data = "Tuna sandwiches: " . stripslashes($_POST['numberTuna']) . "<br>"; 
    $data .= "Cheese sandwiches: " . stripslashes($_POST['numberCheese']) . "<br>"; 
    touch($file); 
    file_put_contents($file, $data); 
} 
+0

यह उतना ही नहीं है जितना मैंने फॉपेन के साथ किया था? – poepje

+0

बिग अंतर 'file_put_contents' = 'fopen + fwrite + fclose' – Baba

+0

ओह तो वास्तव में एक शॉर्टकट? मुझे याद होगा कि कोड के बड़े टुकड़े के लिए :) – poepje

संबंधित मुद्दे