2012-04-10 10 views
31

इसलिए, मुझे वास्तव में मेरे वर्तमान वेब पेज में कोई त्रुटि नहीं है, लेकिन जब वे पॉप अप करते हैं तो मैं एक त्रुटि देखने में सक्षम होना चाहता हूं, इसके बजाय HTTP 500 त्रुटि पृष्ठ का। मैं थोड़ी देर के लिए googled और सोचा कि इन दो लाइनों को जोड़ने सब कुछ ठीक हो जाएगा।PHP प्रदर्शन त्रुटियों को कैसे करें? (मैंने ini_set और error_reporting जोड़ा है, लेकिन केवल त्रुटियों पर 500 देता है)

ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 

नोट: मुझे php.ini फ़ाइल तक पहुंच नहीं है, क्योंकि मैं अपने स्कूल खाते के सर्वर का उपयोग कर रहा हूं।

तो मैं अपने पेज के शीर्ष पर तो जैसे एक बग ($ गाड़ी के बाद कोई अर्धविराम) की शुरुआत की:

<?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 
$buggy 

$x = 4 + 2; 
... 
हालांकि

, मैं सिर्फ एक सर्वर त्रुटि मिलती है:

"वेबसाइट का सामना करना पड़ा एक http://mywebpage.com/ पुनर्प्राप्त करते समय त्रुटि। यह रखरखाव या गलत तरीके से कॉन्फ़िगर करने के लिए नीचे हो सकता है। "

कोई विचार?

संपादित करें:

मैं अपने कोड पुन: कॉन्फ़िगर किया है:

<?php 
    ini_set('display_errors', 'On'); 
    error_reporting(E_ALL); 
?> 

लेकिन यह अभी भी काम नहीं करता है ... गलत तरीके:

<?php 
include_once 'database/errorSettings.php'; 
?> 
<?php 

$buggy // whoops 
$x = 4 + 2; 
... 

errorSettings.php पीछा कर रहा है पुन: कॉन्फ़िगर करने के लिए?

+0

समस्या का हल तो आपको एक त्रुटि अपनी .htacces फ़ाइल में पुनर्निर्देशित है? – Interrobang

+1

आप php के साथ अपाचे त्रुटियों को भ्रमित कर रहे हैं। –

+0

मुझे यकीन नहीं है कि इसका क्या अर्थ है। मुझे नहीं लगता कि मेरे पास .htaccess फ़ाइल तक पहुंच है, लेकिन शायद मैं मुझे चेक करने देता हूं। साथ ही, यह नहीं पता कि यह प्रासंगिक है, लेकिन पृष्ठ में एकमात्र बग गुमशुदा अर्धविराम है। अगर मैं इसे बाहर ले जाता हूं, तो पेज ठीक हो जाता है। (यह देखने के लिए जांच कर रहा है कि क्या मैं .htaccess फ़ाइल कह सकता हूं) –

उत्तर

12

क्या आपके पास एक पार्स त्रुटि है। किसी भी कोड को निष्पादित करने से पहले उन्हें फेंक दिया जाता है। किसी भी कोड को निष्पादित किए जाने से पहले एक PHP फ़ाइल को पूरी तरह से पार्स किया जाना चाहिए। अगर फ़ाइल में एक पार्स त्रुटि है जहां आप अपना त्रुटि स्तर निर्धारित कर रहे हैं, तो त्रुटि के समय तक वे प्रभावी नहीं होंगे।

या तो अपनी फ़ाइलों को एक छोटे से हिस्सों में विभाजित करें, जैसे कि एक फ़ाइल में त्रुटि स्तर सेट करना और फिर include एक अन्य फ़ाइल जिसमें वास्तविक कोड (और त्रुटियां) हैं, या php.ini का उपयोग करके PHP के बाहर त्रुटि स्तर सेट करें। htaccess निर्देश।

+0

ठीक है, मैंने उपरोक्त (मेरे संपादन में) के रूप में अपना कोड दोबारा बनाया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। मैं इसे एक और जाने के लिए जा रहा हूँ। –

+0

त्रुटि सेटिंग्स सेट करने वाली फ़ाइल को पहले सफलतापूर्वक चलाने की आवश्यकता है। यदि पार्स त्रुटि फ़ाइल में है जिसमें फ़ाइल शामिल है जो त्रुटि सेटिंग्स सेट करता है, जो मदद नहीं करता है। – deceze

+0

ओह, तो मुझे बस अपने शामिल करने की जरूरत है ... तरह, सही? –

12

आपको .htaccess फ़ाइल में error_reporting मान सेट करने की आवश्यकता है। चूंकि एक पार्स त्रुटि है, यह आपके PHP कोड में error_reporting() फ़ंक्शन कभी नहीं चलाता है।

(यह मानते हुए आप उपयोग कर सकते हैं) एक .htaccess फाइल में इस प्रयास करें:

php_flag display_errors 1 
php_value error_reporting 30719 

मैं 30,719 E_ALL से मेल खाती है लगता है लेकिन मैं गलत हो सकता है।

संपादित करें अद्यतन:http://php.net/manual/en/errorfunc.constants.php

int error_reporting ([ int $level ]) 
--- 
32767 E_ALL (integer)  
All errors and warnings, as supported, except of level E_STRICT prior to PHP 5.4.0. 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously 
+0

ऐसा नहीं लगता कि मेरे पास .htaccess फ़ाइल तक पहुंच है :( –

+1

नोट: कुछ मामलों में (जैसे कि फंकी परिस्थितियों में अनुपलब्ध फ़ंक्शंस) आपको 'display_startup_errors' – srcspider

+0

सक्षम करने की आवश्यकता हो सकती है हां, display_startup_errors 'on'/'1'। इसके अलावा, मैंने एक स्तर स्पष्टीकरण दिया है। – danielpopa

0

मैं जब PHP5.4 और Plesk 11.5

किसी तरह का उपयोग कर इस समस्या को पड़ा है, त्रुटि की सूचना और प्रदर्शन Plesk डोमेन विन्यास पेज में त्रुटि सेटिंग्स पूरी तरह से .htaccess में किसी भी स्थानीय सेटिंग्स या PHP स्क्रिप्ट अधिभावी कर रहे थे। मुझे ऐसा होने से रोकने का कोई तरीका नहीं मिला है, इसलिए त्रुटि रिपोर्टिंग चालू और बंद करने के लिए Plesk सेटिंग्स का उपयोग करें।

आपके पास अपने PHP में सेटिंग्स हो सकती हैं।ini जो स्थानीय साइट को इन सेटिंग्स को ओवरराइड करने से रोकती है, शायद आपके सर्वर पर उपयोग किए गए नियंत्रण कक्ष द्वारा लागू की जाती है।

2

बस PHP फ़ाइल के शीर्ष पर एक निम्न कोड लिखें:

ini_set('display_errors','on'); 
+2

में त्रुटियों की त्रुटियों को दिखाएगा, वही है जो उनके पास पहले से ही है ... – glglgl

4

क्या deceze ऊपर कहा करने के लिए जोड़ा जा रहा है। यह एक पार्स त्रुटि है, इसलिए एक पार्स त्रुटि डीबग करने के लिए, debugSyntax.php नामक रूट में एक नई फ़ाइल बनाएं। उस में इस रखो:

<?php 

/////// SYNTAX ERROR CHECK //////////// 
error_reporting(E_ALL); 
ini_set('display_errors','On'); 

//replace "pageToTest.php" with the file path that you want to test. 
include('pageToTest.php'); 

?> 

debugSyntax.php पेज भागो और यह पेज है कि आप परीक्षण करने के लिए चुना है से पार्स त्रुटियाँ प्रदर्शित करेगा।

0
Codeigniter (मैं सी 3 पर हूँ) का उपयोग कर लोगों के लिए

:

case 'development': 
     error_reporting(-1); 
     ini_set('display_errors', 1); 
    break; 

आप कर सकते हैं:

index.php फ़ाइल php.ini विन्यास ऊपर लिख, index.php फ़ाइल, लाइन 68 पर तो आपको जो चाहिए उसे सेट करने के लिए इस विकल्प को बदलें। यहां पूरी सूची दी गई है:

1 E_ERROR 
2 E_WARNING 
4 E_PARSE 
8 E_NOTICE 
16 E_CORE_ERROR 
32 E_CORE_WARNING 
64 E_COMPILE_ERROR 
128 E_COMPILE_WARNING 
256 E_USER_ERROR 
512 E_USER_WARNING 
1024 E_USER_NOTICE 
6143 E_ALL 
2048 E_STRICT 
4096 E_RECOVERABLE_ERROR 

उम्मीद है कि यह मदद करता है।

0

सिंटेक्स त्रुटियों को बाहरी सर्वरों में आसानी से चेक नहीं किया जाता है, केवल रनटाइम त्रुटियां।

मैं क्या करता हूं? बस आप की तरह, मैं

ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 

हालांकि, चलाने से पहले मैं एक ऑनलाइन PHP वाक्यविन्यास परीक्षक का उपयोग कर एक PHP फ़ाइल में वाक्यविन्यास त्रुटियों की जांच करता हूं।

सबसे अच्छा है, IMHO PHP Code Checker

मैं सभी स्रोत कोड की नकल, मुख्य बॉक्स के अंदर पेस्ट और Analyze बटन पर क्लिक करें है।

यह सबसे व्यावहारिक तरीका नहीं है, लेकिन 2 प्रक्रियाओं पूरक हैं और यह पूरी तरह

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