मैं PHP में एक प्रमाणीकरण स्क्रिप्ट लिख रहा हूं, जिसे एपीआई कहा जाता है, जिसे 200 500` अन्यथा वापस करने की आवश्यकता है।किसी भी त्रुटि पर HTTP 500 कोड को वापस कैसे करें, कोई फर्क नहीं पड़ता कि
समस्या जो मैं चल रहा हूं वह यह है कि त्रुटि शर्तों के मामले में php 200
देता है, त्रुटि को HTML के रूप में आउटपुट करता है। मैं पूरी तरह से यह सुनिश्चित कैसे कर सकता हूं कि php HTTP 500
कोड वापस लौटाएगा जब तक कि मैं स्पष्ट रूप से HTTP 200
या HTTP 403
को स्पष्ट रूप से वापस नहीं लौटाता? दूसरे शब्दों में, मैं किसी भी और सभी चेतावनी या त्रुटि शर्तों को 500
एस में बदलना चाहता हूं, कोई अपवाद नहीं है, ताकि डिफ़ॉल्ट केस प्रमाणीकरण अनुरोध को अस्वीकार कर रहा हो, और अपवाद 200
कोड के साथ अनुमोदित कर रहा है।
मैंने set_error_handler()
और error_reporting()
के साथ झुकाया है, लेकिन अब तक कोई भाग्य नहीं है। उदाहरण के लिए, यदि कोड HTTP प्रतिक्रिया कोड भेजने से पहले कोड आउटपुट करता है, तो PHP स्वाभाविक रूप से रिपोर्ट करता है कि आप कुछ भी आउटपुट करने के बाद हेडर जानकारी संशोधित नहीं कर सकते हैं। हालांकि, यह पीएचपी द्वारा 200
प्रतिक्रिया कोड के रूप में रिपोर्ट किया गया है जिसमें एचटीएमएल समस्या को समझाता है। मुझे इस तरह की चीज को 500
कोड में बदलने की आवश्यकता है।
क्या यह PHP में संभव है? या क्या मुझे इसे उच्च स्तर पर करने की आवश्यकता है जैसे किसी भी तरह mod_rewrite
का उपयोग करना? यदि ऐसा है, तो कोई विचार है कि मैं इसे कैसे सेट अप करूं?
यहाँ इस के लिए एक बग रिपोर्ट नहीं है: http://bugs.php.net/bug.php?id=50921 - यह ऐसा लगता है जैसे तेजी तय हो सकता है। –