Project

General

Profile

Bug #84009

Updated by Sybille Peters about 6 years ago

I had this problem in the following versions: 
 * current master (9.2.0-dev) 
 * current TYPO3_8-7 branch (8.7.11-dev) 
 * 8.7.10 
 (that's all I tested so far) 

 h2. Steps to reproduce 

 # Insert an invalid url (I used *http//abc.de/sfdsf*) into a content element with the link wizard (external url) 
 # Save the content element: exception is thrown 

 (set configuration presets to "debug" to see exception message) 

 h2. Exception 

 Exception for 8.7.10: 

 <pre><code class="php"> 
 Uncaught TYPO3 Exception 
 #1460629247: No valid handlers found for type: unknown (More information) 

 TYPO3\CMS\Core\LinkHandling\Exception\UnknownLinkHandlerException thrown in file 
 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/LinkHandling/LinkService.php /var/www/t3coredev/typo3/sysext/core/Classes/LinkHandling/LinkService.php in line 155. 

 18 35 TYPO3\CMS\Core\LinkHandling\LinkService::asString(array) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/Html/RteHtmlParser.php: /var/www/t3coredev/typo3/sysext/core/Classes/Html/RteHtmlParser.php: 
 00566: 00558:                   } else { 
 00567: 00559:                       // Otherwise store the link as <a> tag as default by TYPO3, with the new link service syntax 
 00568: 00560:                       $tagAttributes['href'] = $linkService->asString($linkInformation); 
 00569: 00561:                       $blockSplit[$k] = '<a ' . GeneralUtility::implodeAttributes($tagAttributes, true) . '>' 
 00570: 00562:                           . $this->TS_links_db($this->removeFirstAndLastTag($blockSplit[$k])) . '</a>'; 

 17 34 TYPO3\CMS\Core\Html\RteHtmlParser::TS_links_db("<p><a href="http//abc.de/sfdsf">invalid link&nbsp;</a></p>") href="http://www.grün-gedruckt.de">existing…href="http//abc.de/sfdsf">invalid url http</a></p>") 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/Html/RteHtmlParser.php: /var/www/t3coredev/typo3/sysext/core/Classes/Html/RteHtmlParser.php: 
 00230: 00225:                               break; 
 00231: 00226:                           case 'ts_links': 
 00232: 00227:                               $value = $this->TS_links_db($value); 
 00233: 00228:                               break; 
 00234: 00229:                           case 'css_transform': 

 16 33 TYPO3\CMS\Core\Html\RteHtmlParser::RTE_transform("<p><a href="http//abc.de/sfdsf">invalid link&nbsp;</a></p>", href="http://www.grün-gedruckt.de">existing…href="http//abc.de/sfdsf">invalid url http</a></p>", array, "db", array) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/DataHandling/DataHandler.php: /var/www/t3coredev/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 
 01783: 01810:               $parseHTML = GeneralUtility::makeInstance(RteHtmlParser::class); 
 01784: 01811:               $parseHTML->init($table . ':' . $field, $realPid); 
 01785: 01812:               $valueArray['value'] = $parseHTML->RTE_transform($value, [], 'db', $richtextConfiguration); 
 01786: 01813:           } 
 01787: 01814:  

 15 32 TYPO3\CMS\Core\DataHandling\DataHandler::checkValueForText("<p><a href="http//abc.de/sfdsf">invalid link&nbsp;</a></p> href="http://www.grün-gedruckt.de">existing…ef="http//abc.de/sfdsf">invalid url http</a></p> 
 ↵", array, "tt_content", "NEW5a8e8db2b57d9344844565", 2, 184, 332, "bodytext") 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/DataHandling/DataHandler.php: /var/www/t3coredev/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 
 01656: 01684:           switch ($tcaFieldConf['type']) { 
 01657: 01685:               case 'text': 
 01658: 01686:                   $res = $this->checkValueForText($value, $tcaFieldConf, $table, $id, $realPid, $field); 
 01659: 01687:                   break; 
 01660: 01688:               case 'passthrough': 

 14 31 TYPO3\CMS\Core\DataHandling\DataHandler::checkValue_SW(array, "<p><a href="http//abc.de/sfdsf">invalid link&nbsp;</a></p> href="http://www.grün-gedruckt.de">existing…ef="http//abc.de/sfdsf">invalid url http</a></p> 
 ↵", array, "tt_content", "NEW5a8e8db2b57d9344844565", 184, "<p><a href="http://www.grün-gedruckt.de">existing…fdsf">not existing link with umlatus (404)</a></p>", "update", 332, NULL, "new", 2, NULL, "bodytext", NULL, 2) 332) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/DataHandling/DataHandler.php: /var/www/t3coredev/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 
 01623: 01651:  
 01624: 01652:           // Perform processing: 
 01625: 01653:           $res = $this->checkValue_SW($res, $value, $tcaFieldConf, $table, $id, $curValue, $status, $realPid, $recFID, $field, $this->uploadedFileArray[$table][$id][$field], $tscPID); 
 01626: 01654:           return $res; 
 01627: 01655:       } 

 13 30 TYPO3\CMS\Core\DataHandling\DataHandler::checkValue("tt_content", "bodytext", "<p><a href="http//abc.de/sfdsf">invalid link&nbsp;</a></p> href="http://www.grün-gedruckt.de">existing…ef="http//abc.de/sfdsf">invalid url http</a></p> 
 ↵", "NEW5a8e8db2b57d9344844565", "new", 2, 2) 184, "update", 332, 332) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/DataHandling/DataHandler.php: /var/www/t3coredev/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 
 01513: 01530:                       if (isset($GLOBALS['TCA'][$table]['columns'][$field])) { 
 01514: 01531:                           // Evaluating the value 
 01515: 01532:                           $res = $this->checkValue($table, $field, $fieldValue, $id, $status, $realPid, $tscPID); 
 01516: 01533:                           if (array_key_exists('value', $res)) { 
 01517: 01534:                               $fieldArray[$field] = $res['value']; 

 12 29 TYPO3\CMS\Core\DataHandling\DataHandler::fillInFieldArray("tt_content", "NEW5a8e8db2b57d9344844565", 184, array, array, 2, "new", 2) 332, "update", 332) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/DataHandling/DataHandler.php: /var/www/t3coredev/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 
 01228: 01178:                   } 
 01229: 01179:                   // Processing of all fields in incomingFieldArray and setting them in $fieldArray 
 01230: 01180:                   $fieldArray = $this->fillInFieldArray($table, $id, $fieldArray, $incomingFieldArray, $theRealPid, $status, $tscPID); 
 01231: 01181:                   $newVersion_placeholderFieldArray = []; 
 01232:                   if ($createNewVersion) { $newVersion_p 

 11 TYPO3\CMS\Core\DataHandling\DataHandler::process_datamap() 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Controller/EditDocumentController.php: 
 00575:               // Perform </code></pre> 


 (also I can't scroll in the saving operation with DataHandler: 
 00576:               $tce->process_uploads($_FILES); 
 00577:               $tce->process_datamap(); 
 00578:               $tce->process_cmdmap(); 
 00579:               // If pages are being edited, we set an instruction about updating Exception message window, so I can't get the page tree after this operation. 

 10 TYPO3\CMS\Backend\Controller\EditDocumentController::processData() 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Controller/EditDocumentController.php: 
 01988:           // Checks, if a save button has been clicked (or the doSave variable is sent) 
 01989:           if ($this->doProcessData()) { 
 01990:               $this->processData(); 
 01991:           } 
 01992:  

 9 TYPO3\CMS\Backend\Controller\EditDocumentController::mainAction(TYPO3\CMS\Core\Http\ServerRequest, TYPO3\CMS\Core\Http\Response) 
 8 call_user_func_array(array, array) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Http/RouteDispatcher.php: 
 00052:           $targetIdentifier = $route->getOption('target'); 
 00053:           $target = $this->getCallableFromTarget($targetIdentifier); 
 00054:           return call_user_func_array($target, [$request, $response]); 
 00055:       } 
 00056:  

 7 TYPO3\CMS\Backend\Http\RouteDispatcher::dispatch(TYPO3\CMS\Core\Http\ServerRequest, TYPO3\CMS\Core\Http\Response) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Http/RequestHandler.php: 
 00137:           /** @var RouteDispatcher $dispatcher */ 
 00138:           $dispatcher = GeneralUtility::makeInstance(RouteDispatcher::class); 
 00139:           return $dispatcher->dispatch($request, $response); 
 00140:       } 
 00141: } 

 6 TYPO3\CMS\Backend\Http\RequestHandler::dispatch(TYPO3\CMS\Core\Http\ServerRequest) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Http/RequestHandler.php: 
 00070:           // Check if the router has the available route and dispatch. 
 00071:           try { 
 00072:               return $this->dispatch($request); 
 00073:           } catch (InvalidRequestTokenException $e) { 
 00074:               // When token was invalid redirect to login 

 5 TYPO3\CMS\Backend\Http\RequestHandler::handleRequest(TYPO3\CMS\Core\Http\ServerRequest) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/core/Classes/Core/Bootstrap.php: 
 00313:  
 00314:           // Execute the command which returns a Response object or NULL 
 00315:           $this->response = $requestHandler->handleRequest($request); 
 00316:           return $this; 
 00317:       } 

 4 TYPO3\CMS\Core\Core\Bootstrap::handleRequest(TYPO3\CMS\Core\Http\ServerRequest) 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Classes/Http/Application.php: 
 00090:           } 
 00091:  
 00092:           $this->bootstrap->handleRequest($this->request); 
 00093:  
 00094:           if ($execute !== null) { 

 3 TYPO3\CMS\Backend\Http\Application::run() 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Resources/Private/Php/backend.php: 
 00022:       $classLoader = require __DIR__ . '/../../../../../../vendor/autoload.php'; 
 00023:  
 00024:       (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run(); 
 00025: }); 

 2 {closure}() 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Resources/Private/Php/backend.php: 
 00023:  
 00024:       (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run(); 
 00025: }); 

 1 require("/var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/sysext/backend/Resources/Private/Php/backend.php") 

 /var/www/t3bare8/htdocs/typo3_src-8.7.10/typo3/index.php: 
 00001: <?php 
 00002:  
 00003: require __DIR__ . '/sysext/backend/Resources/Private/Php/backend.php'; 


 </code></pre> 
 entire exception message, but that's another issue)

Back