2010-04-25 17 views
24

यहां मेरी फाइल है। मैं इसे रीडायरेक्ट करना चाहता हूं, लेकिन कुछ भी नहीं होता है। यह देखने के लिए कि क्या हो रहा है, मैंने हेडर भाग से पहले एक गूंज जोड़ा।PHP शीर्षलेख स्थान-रीडायरेक्ट काम नहीं करता है - क्यों?

यह न तो एक त्रुटि फेंकता है या index.php ले जाते हैं। गलत क्या है? मैंने आउटपुट बफरिंग चालू/बंद कर दी है, लेकिन कुछ भी इसे रीडायरेक्ट नहीं करता है। मैं क्या कर सकता हूँ?

<? 
error_reporting(E_ALL); 
echo 'This is an error'; 

header("Location: login.php"); 
die(); 
?> 

धन्यवाद

+1

* प्रदर्शन \ _errors * सक्षम है? – Gumbo

+0

@ गम्बो - यह निश्चित है! – Industrial

+3

क्या आपके द्वारा कम से कम आउटपुट प्रदान किया गया कोड 'यह एक त्रुटि है'? – timdev

उत्तर

1

मैं अपने आप को याद दिलाया कि मैं Xdebug वास्तविक परीक्षण वातावरण पर स्थापित है और यह googling के बाद, मैं इस साइट पाया था: http://bugs.xdebug.org/view.php?id=532

तो मैं डाउनलोड किया जाएगा xDebug का अंतिम संस्करण और नई फ़ाइल के लिए php.ini को तदनुसार बदल दिया और सब कुछ एक आकर्षण की तरह काम करता है। हेडर भेजे जा रहे हैं - रेडियरेसीशन किया जाता है और त्रुटियां प्रदर्शित होती हैं। आपकी मदद के लिए

धन्यवाद हर कोई!

43

PHP documentation से:

header() किसी भी वास्तविक उत्पादन भेजे जाने से पहले बुलाया जाना चाहिए, या तो सामान्य HTML टैग, एक फ़ाइल में रिक्त लाइनों से, या PHP से।

और अपने मामले में, आप header()

+0

मुझे पता है और यही कारण है कि मैंने हेडर() - कॉल से पहले एक गूंज बना दिया है। यह अन्य सर्वरों पर एक त्रुटि बनाता है और यह करना चाहिए। कुछ भी क्यों नहीं होता? – Industrial

+7

हेडर बदलने के लिए एक विकल्प का उपयोग करना होगा: ' window.location.replace ('login.php') "?> –

1

से पहले echo उपयोग कर रहे हैं आप छोटे टैग सक्षम है? लंबे टैग <?php के साथ प्रयास करें:

<?php 
error_reporting(E_ALL); 
header("Location: login.php"); 
die(); 
?> 
+0

हाँ, मेरे पास छोटे टैग सेट सक्षम हैं, और बाकी सब कुछ काम करता है ठीक है, हेडर सामान को छोड़कर ... – Industrial

0

display_errors सक्षम है?
@ गम्बो - यह निश्चित है!

अच्छी तरह से, यह सुनिश्चित नहीं है। क्योंकि

यह देखने के लिए कि क्या हो रहा है, मैंने हेडर भाग से पहले एक गूंज जोड़ा।

यदि आपके पास display_errors सक्षम है, तो यह कम से कम जब आप turned output buffering on त्रुटि प्रदर्शित करेंगे, तो यह एक त्रुटि प्रदर्शित करेगा।

तो, सब से पहले सुनिश्चित करें कि आप त्रुटि संदेश देख सकते हैं।
सिर्फ एक अपरिभाषित चर प्रिंट आउट,

error_reporting(E_ALL); 
echo $undef9306; 

मुझे यकीन है कि आप इसे नहीं देख पाएंगे हूँ। तो, आपको

पर प्रदर्शित त्रुटियों को चालू करना होगा, इसके बाद, सर्वर पक्ष पर आप headers_sent() फ़ंक्शन का उपयोग यह देखने के लिए कर सकते हैं कि हेडर भेजे गए हैं या नहीं। ग्राहक के पक्ष उपयोग HTTP स्निफर पर देख अगर कुछ भी

भेजा गया था और बीओएम के लिए अपनी फ़ाइल की जांच करने के लिए।

+0

हाय। मुझे डर नहीं लग रहा है. Display_errors के रूप में सक्षम हैं, लेकिन यह xDebug था जिसके कारण यह हुआ ... आपकी मदद के लिए बहुत बहुत धन्यवाद Col.! – Industrial

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