diff --git a/library/HTML5/TreeBuilder.php b/library/HTML5/TreeBuilder.php index 03e2ee77..2a789f4d 100755 --- a/library/HTML5/TreeBuilder.php +++ b/library/HTML5/TreeBuilder.php @@ -158,6 +158,8 @@ class HTML5_TreeBuilder { if ($this->ignore_lf_token) $this->ignore_lf_token--; $this->ignored = false; + + $token['name'] = str_replace(':', '-', $token['name']); // indenting is a little wonky, this can be changed later on switch ($mode) { @@ -1429,7 +1431,7 @@ class HTML5_TreeBuilder { case 'tbody': case 'td': case 'tfoot': case 'th': case 'thead': case 'tr': // parse error break; - + /* A start tag token not covered by the previous entries */ default: /* Reconstruct the active formatting elements, if any. */ @@ -3038,10 +3040,16 @@ class HTML5_TreeBuilder { private function insertElement($token, $append = true) { $el = $this->dom->createElementNS(self::NS_HTML, $token['name']); - + if (!empty($token['attr'])) { foreach($token['attr'] as $attr) { - if(!$el->hasAttribute($attr['name'])) { + + // mike@macgirvin.com 2011-11-17, check attribute name for + // validity (ignoring extenders and combiners) as illegal chars in names + // causes everything to abort + + $valid = preg_match('/^[a-zA-Z\_\:]([\-a-zA-Z0-9\_\:\.]+$)/',$attr['name'],$matches); + if($attr['name'] && (!$el->hasAttribute($attr['name'])) && ($valid)) { $el->setAttribute($attr['name'], $attr['value']); } } diff --git a/mod/submit.php b/mod/submit.php index 9d17c6d6..64f2596b 100755 --- a/mod/submit.php +++ b/mod/submit.php @@ -9,6 +9,8 @@ function submit_content(&$a) { if(! strlen($url)) exit; + + logger('Updating: ' . $url); $nurl = str_replace(array('https:','//www.'), array('http:','//'), $url); @@ -30,6 +32,7 @@ function submit_content(&$a) { $parms = scrape_dfrn($url); +// logger('dir_submit: ' . print_r($parms,true)); if((! count($parms)) || (validate_dfrn($parms))) { exit;