2015-12-03 12 views
7

मैंने Typo3 संस्करण 7.6 स्थापित किया और मेरे पृष्ठ में एक्सटेंशन जोड़ने के बाद मुझे त्रुटि मिली "ओह, एक त्रुटि आई! कोड: 201512031647523f4d731f"। मुझे इस त्रुटि का अर्थ नहीं मिल रहा है और मैं स्थानीय कॉन्फ़िगरेशन में 'displayErrors' => 1 को भी सक्षम करता हूं लेकिन अभी भी सार्थक त्रुटि नहीं मिलता है। enter image description here"ओह, एक त्रुटि हुई! कोड: 201601301501048 .." TYPO3 7.6

उत्तर

8

मूल रूप से यह दिनांक + हैश है, जो इस तरह की त्रुटियों को अद्वितीय बनाता है।

विकास पर्यावरण के लिए आप इसे बंद बदल सकते हैं, के रूप में @Jost का सुझाव दिया।

लेकिन उत्पादन के लिए इस के लिए महत्वपूर्ण है चलो यह को चालू किया जाना है, इसलिए यदि आपके प्लग इन या टीएस libs के कुछ विफल रहता है, यह पूरा उत्पादन को तोड़ने नहीं होगा और दिखाने के किसी भी जानकारी के बिना "ओह, कोई त्रुटि हुई" , लेकिन संदेश, अब आप एक कोड के साथ देखते हैं।

वेबसाइट का वास्तविक उपयोगकर्ता तब आपको इस कोड की रिपोर्ट कर सकता है, और आप इस कोड को अपने TYPO3 त्रुटि लॉग में खोज सकते हैं, जो डिफ़ॉल्ट रूप से typo3temp/logs/ के अंतर्गत स्थित है, जब तक कि आप इसे अलग कॉन्फ़िगर नहीं करते।

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

19

आपको "सामग्री ऑब्जेक्ट अपवाद हैंडलर" को बंद करने की आवश्यकता है, जो नए संस्करणों में अपवाद हैंडलर है। यदि कोई सामग्री तत्व/प्लगइन अपवाद फेंकता है, तो यह अब पूरी साइट को नहीं लेता है, बल्कि केवल स्वयं ही। उसे निष्क्रिय करने के लिए,

config.contentObjectExceptionHandler = 0 
सेट

Reference

जब प्रसारित होने अपवाद संचालक को पुन: सक्षम है, और अपने जीवन प्रणाली में, आप अपने लॉग फ़ाइलों में अपवाद का पता लगाने खोज करने के लिए मत भूलना। मूल रूप से विक्टर Livakivskyi दूसरे जवाब में क्या कहते हैं।

-1

आप फ़ाइल ./typo3/sysext/frontend/Classes/ContentObject/Exception/ProductionExceptionHandler.php स्ट्रिंग ओह, कोई त्रुटि हुई

खोजें खोल सकते हैं!। फ़ंक्शन घोषणा के बाद सीधे डीबग लाइन जोड़ें।

/** 
* Handles exceptions thrown during rendering of content objects 
* The handler can decide whether to re-throw the exception or 
* return a nice error message for production context. 
* 
* @param \Exception $exception 
* @param AbstractContentObject $contentObject 
* @param array $contentObjectConfiguration 
* @return string 
* @throws \Exception 
*/ 
public function handle(\Exception $exception, AbstractContentObject $contentObject = null, $contentObjectConfiguration = array()) 
{ 
debug ($exception, 'handle $exception'); 

फिर आप एक डीबग एक्सटेंशन का उपयोग करते हैं, उदा। fh_debug। यह आपको इस तरह का आउटपुट देगा। यह आपको कॉल का बैकट्रैक दिखाता है जो इस त्रुटि का कारण बनता है। बैकट्रैक 2 प्रारूपों में दिखाए जाते हैं। त्रुटि के बारे में अधिक जानकारी प्राप्त करने के लिए, आप बैकट्रैस से स्थानों से पहले स्थितियों पर अधिक डीबग लाइन जोड़ सकते हैं।

<table><tbody><tr><td>index.php</td><td>34</td><td>call_user_func</td></tr><tr><td>index.php</td><td>33</td><td>run</td></tr><tr><td>Application.php</td><td>78</td><td>handleRequest</td></tr><tr><td>Bootstrap.php</td><td>302</td><td>handleRequest</td></tr><tr><td>RequestHandler.php</td><td>232</td><td>INTincScript</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3478</td><td>recursivelyReplaceIntPlaceholdersInContent</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3512</td><td>INTincScript_process</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3564</td><td>cObjGetSingle</td></tr><tr><td>ContentObjectRenderer.php</td><td>859</td><td>render</td></tr><tr><td>ContentObjectRenderer.php</td><td>943</td><td>render</td></tr><tr><td>ContentObjectArrayContentObject.php</td><td>41</td><td>cObjGet</td></tr><tr><td>ContentObjectRenderer.php</td><td>805</td><td>cObjGetSingle</td></tr><tr><td>ContentObjectRenderer.php</td><td>859</td><td>render</td></tr><tr><td>ContentObjectRenderer.php</td><td>953</td><td>handle</td></tr><tr><td>ProductionExceptionHandler.php</td><td>53</td><td>debug</td></tr></tbody></table><br><table><tbody><tr><th>Object TYPO3\CMS\Core\Error\Exception</th></tr><tr><td>message</td><td class="el">PHP Catchable Fatal Error: Argument 1 passed to TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::render() must be an instance of TYPO3\CMS\Frontend\ContentObject\AbstractContentObject, null given, called in /home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php on line 1359 and defined in /home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php line 927</td></tr> 
 
<tr><td>code</td><td class="el"><table><tbody><tr><th>Integer</th></tr><tr><td>1</td></tr></tbody></table></td></tr> 
 
<tr><td>file</td><td class="el">/home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/core/Classes/Error/ErrorHandler.php</td></tr> 
 
<tr><td>line</td><td class="el"><table><tbody><tr><th>Integer</th></tr><tr><td>111</td></tr></tbody></table></td></tr> 
 
</tbody></table> 
 

 
<h3>handle $exception</h3><hr>


पाठ, बाद में कहा: इस बीच में यह PHP फ़ाइल typo3 की ProductionExceptionHandler.php संपादित करने के लिए किसी भी अधिक आवश्यक नहीं है। आप बस fh_debug एक्सटेंशन को स्थापित और कॉन्फ़िगर करें जो अब आवश्यक कदम स्वचालित रूप से करता है।

+2

उत्पादक वातावरण में डीबग जानकारी का खुलासा न करें, और, देवताओं के लिए कोर कोड के साथ गड़बड़ी नहीं कर रही है। – j4k3

+0

@ j4k3: आप टिप्पणी करते हैं कोई समझ नहीं आता है। डीबग जानकारी का आउटपुट इंस्टॉल टूल की डीबग सेटिंग्स द्वारा नियंत्रित होता है। अब मेरे कोड गड़बड़ मत करो! –

+0

सबसे पहले मैंने नहीं किया। दूसरा, मैं क्यों नहीं करूंगा। सबसे तीसरा, डीबगिंग जानकारी के साथ उदार होने के बारे में समझना इतना मुश्किल है? आपके कोड के अंदरूनी भाग ऐसा कुछ है जिसे आप आम तौर पर अपने संभावित हमलावरों के बारे में जानना नहीं चाहते हैं। सभी का चौथा न। मैस। साथ में। । कोर। – j4k3

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