2011-03-15 13 views
7

मेरे पास एक ऐसा पृष्ठ है जो दूरस्थ साइट से POST स्वीकार करता है। मैं डोमेन का पता लगाना चाहता हूं कि ये पोस्ट आ रहे हैं। मुझे एहसास है कि इसे धोखा दिया जा सकता है लेकिन यह कुछ भी नहीं है। मैंने HTTP_REFERER चर का उपयोग करने का प्रयास किया है लेकिन यह सिर्फ शून्य देता है।PHP HTTP रेफरर

पृष्ठ पेपैल (तत्काल भुगतान सूचनाएं) और अन्य भुगतान गेटवे जैसे स्रोतों से POST स्वीकार करता है।

मैं रेफरिंग कॉल कैसे प्राप्त कर सकता हूं?

+0

यह एक टाइपो है, लेकिन जाहिरा तौर पर नहीं तुम्हारा http://en.wikipedia.org/wiki/HTTP_referrer –

+0

http एक राज्यविहीन प्रोटोकॉल है, समझें और ब्राउज़र द्वारा सेट किए गए किसी सेट पर भरोसा न करें –

+0

पूरी तरह से सहमत हैं, जब तक लोगों ने सुझाव दिया है, तब तक आईपीएन संसाधित नहीं किया जाएगा। मुझे यह जानने का तरीका चाहिए कि अनुरोध कहां से आया था, इसलिए मुझे पता है कि किस प्रमाणीकरण का उपयोग करना है। – aaronfarr

उत्तर

7

आपने रेफरर को सही ढंग से लिखा है। यह होना चाहिए:

$_SERVER['HTTP_REFERER'] 
+0

रेफरर अंग्रेजी शब्द है, लेकिन PHP में इसके रेफरर। – AbiusX

6
$_SERVER['HTTP_REFERER'] 
एक भी आर के साथ

, अधिक जानकारी के लिए var_dump ($ _ सर्वर) का प्रयास करें।

+0

धन्यवाद, यह सवाल में एक टाइपो था। अभी भी कोड में कुछ भी वापस नहीं कर रहा है। अजीब! – aaronfarr

+0

यह बस शून्य हो सकता है। सभी ब्राउज़र रेफरर्स – AbiusX

2

आप सही हैं कि रेफरर को धोखा देना आसान है, हालांकि एक बेहतर समाधान है। ipn documentation पढ़ें जिसमें वे सत्यापन तंत्र का उल्लेख करते हैं। उपयोगकर्ता पर भरोसा न करें।

+0

धन्यवाद नहीं भेजते हैं। आईपीएन सही ढंग से लागू किया है। लेकिन मैं पेपैल के अलावा अन्य आईपीएन फ़िल्टर करने के लिए एक ही पेज का उपयोग करना चाहता हूं। तो रेफरर का उपयोग करने से यह करने का एक तार्किक तरीका लग रहा था। कोई सुझाव यह कैसे किया जा सकता है? – aaronfarr

2

यह बहुत अच्छी तरह से मेरे लिए काम करता है:

https://stackoverflow.com/a/17958676/2635701

<form action="http://www.yourdomain.com/subscribe" 
    method="POST" 
    onsubmit= 
     "document.getElementById('www.yourdomain.com.referrer').value=window.location;" > 
    <!-- hidden input for field starts with a domain registered by you 
    just so that it's unlikely to clash with anything else on the page --> 
    <input type="hidden" id="www.yourdomain.com.referrer" name="referrer"/> 
    your email: <input name="email" type="text"/> 
    ... rest of form ... 
    <input type="submit" value="Subscribe"/> 
</form> 
+0

क्या होगा यदि जावास्क्रिप्ट अक्षम है? – codingpuss

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