Exemple #1
0
/* no fatal errors. continue */
if ($result) {
    if ($validator->internal_error()) {
        echo "<p>{$message['13']}:<br />\n";
        echo nl2br($validator->internal_errors_string()) . "</p>\n";
    }
    echo '<p>';
    /* file upload */
    if (isset($_FILES['file']) && $_FILES['file']['error'] == UPLOAD_ERR_OK) {
        echo isset($_FILES['file']['name']) ? "<strong>{$message['18']}</strong>: {$_FILES['file']['name']}<br />\n" : '';
        /* URL validator */
    } else {
        echo '<strong>URL</strong>: ' . htmlspecialchars($_REQUEST['url'], ENT_QUOTES, 'UTF-8') . "<br />\n";
    }
    /* If the document contains too many errors, the version may not be found */
    if ($detected_version = $validator->detected_version()) {
        echo "<strong>{$message['14']}</strong>: {$detected_version}<br />\n";
    }
    // enconding in use
    echo "<strong>{$message['20']}</strong>: {$validator->readable_charset()}";
    // language
    if ($validator->lang) {
        echo "<br />\n<strong>{$message['24']}</strong>: {$langs[$validator->lang]}";
    }
    /* Show HTML/XML errors */
    if ($errors = $validator->error()) {
        echo "<br />\n<strong>{$message['21']}</strong>: {$errors}</p>\n" . "<h2>{$message['16']}</h2>\n";
        if (empty($_REQUEST['errors']) || $_REQUEST['errors'] == 'along') {
            echo '<code>' . $validator->errors_source() . "</code>\n\n";
        } else {
            //errors alone
 function validate($a_html, $a_mode)
 {
     // while php 5.1 isn't released we must keep compatibility with php 5.0
     if (!defined('UPLOAD_ERR_CANT_WRITE')) {
         define('UPLOAD_ERR_CANT_WRITE', 7);
     }
     /*
        Mozilla, Firefox and friends have an error that lock radio buttons.
        We use this to disable some feature for these browsers
        More info at: http://bugzilla.mozilla.org/show_bug.cgi?id=229925
     */
     define('MOZILLA', isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko/') !== false);
     //function mozilla($txt) {
     //	return MOZILLA ? '' : $txt;
     //}
     if (empty($lang)) {
         $lang = isset($_REQUEST['lang']) ? $_REQUEST['lang'] : 'en';
     } else {
         $redir = true;
     }
     /*
     		if (empty($_COOKIE['lang']) || $lang != $_COOKIE['lang']) {
     			setcookie('lang', $lang, time()+60*60*24*90, '/', 'validator.aborla.net');
     		}*/
     //output_add_rewrite_var('lang', $lang);
     require './Services/XHTMLValidator/validator/local/en.inc';
     // fallback for not translated messages
     //if ($lang != 'en')
     //	require "./local/$lang.inc"; //load localized messages
     //common_header();
     /****************** START OF THE VALIDATOR ITSELF *******************/
     // output: html/xhtml/xml, accessibility-check: 0-3
     $options = array();
     $options["charset"] = "utf8";
     if ($a_mode == "accessibility") {
         $options["accessibility-check"] = 3;
     }
     $validator = new validator($options);
     //$result = $validator->parse_url((string)$_REQUEST['url']);
     $result = $validator->parse_string($a_html);
     /* no fatal errors. continue */
     if ($result) {
         if ($validator->internal_error()) {
             $answer .= "<p>{$message['13']}:<br />\n";
             $answer .= nl2br($validator->internal_errors_string()) . "</p>\n";
         }
         $answer .= '<p>';
         /* If the document contains too many errors, the version may not be found */
         if ($detected_version = $validator->detected_version()) {
             $answer .= "<strong>{$message['14']}</strong>: {$detected_version}<br />\n";
         }
         // enconding in use
         $answer .= "<strong>{$message['20']}</strong>: {$validator->readable_charset()}";
         // language
         if ($validator->lang) {
             $answer .= "<br />\n<strong>{$message['24']}</strong>: {$langs[$validator->lang]}";
         }
         /* Show HTML/XML errors */
         if ($errors = $validator->error()) {
             $answer .= "<br />\n<strong>{$message['21']}</strong>: {$errors}</p>\n" . "<h2>{$message['16']}</h2>\n";
             if (empty($_REQUEST['errors']) || $_REQUEST['errors'] == 'along') {
                 $answer .= '<code>' . $validator->errors_source() . "</code>\n\n";
             } else {
                 //errors alone
                 $answer .= '<p>' . $validator->errors_string() . "</p>\n\n";
             }
             /* no errors found in the document */
         } else {
             $answer .= "</p><p>{$message['15']}</p>\n";
         }
         /* show repaired document */
         if (!isset($_REQUEST['repair']) || $_REQUEST['repair'] == 'full') {
             $html = strtr(nl2br(htmlspecialchars($validator->repaired_source(), ENT_QUOTES, 'UTF-8')), array('  ' => ' &nbsp;'));
             $answer .= "\n<p>&nbsp;</p>\n<h2>{$message['17']}</h2>\n";
             $answer .= '<div class="code"><code>' . $html . "</code></div>\n";
         }
         /* Diff */
         /*
         	} elseif ($_REQUEST['repair'] == 'diff' && $diff = $validator->repaired_diff()) {
         		$diff = strtr($diff, array('  ' => ' &nbsp;'));
         
         		echo "\n<p>&nbsp;</p>\n<h2>$message[11]</h2>\n";
         		echo '<div class="code"><code>' . $diff . "</code></div>\n";
         	}
         */
         /* there was some error handling the URL/file upload */
     } else {
         $answer .= "<p>{$message['13']}:<br />\n";
         $answer .= nl2br($validator->internal_errors_string()) . "</p>\n";
     }
     return $answer;
 }