रिटर्न - Linux-get_browser() गलत
पर पीएचपी 5.3.8 चल रहा है शुरू करने के लिए, हम बिंदु है जहां फ़ंक्शन उम्मीद मूल्यों के लिए इस मुद्दे को हल कर लिया है। हालांकि अभी भी मेरे पास बहुत से अनुत्तरित प्रश्न हैं, और "समाधान" किसी भी चीज़ से हैक-आसपास है।
मैंने इस मुद्दे पर एक दिन का बेहतर हिस्सा बिताया है, इसलिए मेरे साथ भालू जैसा कि मैंने समझाया था कि क्या किया गया था। शुरू करने के लिए, समस्या यह है कि get_browser()
का वापसी मूल्य FALSE
है, जो एक दस्तावेज़ित वापसी मूल्य नहीं है। इससे मुझे लगता है कि FALSE
वापस आने का मतलब है कि फ़ंक्शन के भीतर कुछ प्रकार की त्रुटि स्थिति है।
कई पुनरावृत्तियों के बाद परीक्षण कोड, बस एक साधारण var_dump(get_browser($agent, true))
बन गया। मैंने उपयोगकर्ता एजेंट स्ट्रिंग को सीधे पास करने के साथ-साथ कोई तर्क नहीं पारित करने के साथ परीक्षण चलाया, उदाहरण के लिए var_dump(get_browser())
, कि सभी के पास एक ही वापसी मूल्य था।
क्या करने की कोशिश की गई थी/सत्यापित, वापसी मान में कोई परिवर्तन नहीं:
browscap.ini:
- नवीनतम संस्करण, भी कुछ पिछले संस्करणों
का परीक्षण किया है अनुमतियां:
bowscap.ini - आरंभिक अनुमतियों 644 थे, लेकिन मैं 644-777
निर्देशिका युक्त browscap.ini से सब कुछ कोशिश की है - आरंभिक अनुमतियों 755 थे, साथ ही
कि PHP कर सकते हैं सत्यापित 777 की कोशिश की
file()
उपयोगकर्ता एजेंट
तरह फ़ाइल और अन्य कार्यों के साथ डायरेक्ट्री तक पहुँचनेएक मैनुअल उपयोगकर्ता एजेंट स्ट्रिंग
की कोशिश की $ _SERVER गुजर गुजर कोशिश की [ 'HTTP_USER_AGENT']
एक दूर देश में एक दोस्त के साथ मेरी उपयोगकर्ता एजेंट स्ट्रिंग सत्यापित -
get_browser()
लौटे मूल्यों के रूप में उम्मीद ।
php।आरं
सही स्थान
echo count(file(ini_get('browscap')));
त्रुटि लॉग्स
- चेक किए गए पीएचपी & अपाचे के साथ फिर से सत्यापित करने के लिए browscap सेटिंग अंक अं या 'browscap' के किसी भी उल्लेख के लिए लॉग या कुछ भी निकट से संबंधित - सामान्य से कुछ भी नहीं।
फ़ाइल संरचना
यह वह जगह है जहाँ मैं संदेह है कि त्रुटि से आता है। browscap.ini /var/php/
में रहता है, जिसमें उपर्युक्त उल्लेखनीय अनुमतियां हैं। मेरा विचार था कि शायद PHP इस निर्देशिका, या उन पंक्तियों के साथ कुछ नहीं पहुंच सका। हालांकि, यह निर्देशिका भी है जहां सत्र संग्रहीत किए जाते हैं, जिससे कम संभावना कम हो जाती है।
"समाधान"
क्या हल मुद्दा सार्वजनिक वेब निर्देशिका को browscap.ini आगे बढ़ रहा था। मैं उत्सुक हूं कि यह क्यों मामला है, विशेष रूप से अनियंत्रित वापसी मूल्य दिया गया है। "समाधान" काम करता है, लेकिन ऐसा समाधान नहीं है जिसे मैंने सोचा था ...
क्या get_browser()
में विशेष अनुमति आवश्यकताएं हैं, या ऐसा कुछ भी है? file()
निर्देशिका और फ़ाइल को ठीक से एक्सेस कर सकता है, लेकिन get_browser()
(संभवतः) नहीं कर सका। मैंने इस मुद्दे पर व्यावहारिक रूप से अपने बालों को खींच लिया है और कुछ संकल्प पसंद करेंगे!
पढ़ने के लिए धन्यवाद!
इस सुविधा का उपयोग आप किसके लिए कर रहे हैं? उपयोगकर्ता-एजेंट शीर्षलेख और इसे पहचानना बिल्कुल विश्वसनीय नहीं है। जावास्क्रिप्ट के साथ ब्राउज़र की क्षमताओं का परीक्षण करने और सर्वर को यह जानकारी भेजने के लिए शायद आपके पास बेहतर भाग्य होगा। हालांकि यह आवश्यक नहीं होना चाहिए, क्योंकि आप आमतौर पर भिन्नता 100% क्लाइंट पक्ष को संभालेंगे। – dqhendricks
@dhehendricks यह एक (काफी बड़े) मौजूदा कोडबेस पर रखरखाव के लिए है। इस कॉल के मूल्य दोनों जगहों पर प्रीप्रोकैसिंग और सेवारत सामग्री दोनों जगहों पर उपयोग किए जाते हैं। मैं हमेशा चीजों को करने के नए/बेहतर तरीकों के लिए खुला रहता हूं, लेकिन संभवतः पूरे सिस्टम को अपने वर्तमान स्थिति में बदलने के लिए यह बहुत अधिक काम होगा। – orourkek
मैं देखता हूं। तब अच्छी शुभकामनाएँ। – dqhendricks