';
die;
}
// Basic config
$defaultLanguage = $spellCheckerConfig['default.language'];
$defaultMode = $spellCheckerConfig['default.mode'];
// Normaly not required to configure
$defaultSpelling = $spellCheckerConfig['default.spelling'];
$defaultJargon = $spellCheckerConfig['default.jargon'];
$defaultEncoding = $spellCheckerConfig['default.encoding'];
$outputType = "xml"; // Do not change
// Get input parameters.
$check = urldecode(getRequestParam('check'));
$cmd = sanitize(getRequestParam('cmd'));
$lang = sanitize(getRequestParam('lang'), "strict");
$mode = sanitize(getRequestParam('mode'), "strict");
$spelling = sanitize(getRequestParam('spelling'), "strict");
$jargon = sanitize(getRequestParam('jargon'), "strict");
$encoding = sanitize(getRequestParam('encoding'), "strict");
$sg = sanitize(getRequestParam('sg'), "bool");
$words = array();
$validRequest = true;
if (empty($check))
$validRequest = false;
if (empty($lang))
$lang = $defaultLanguage;
if (empty($mode))
$mode = $defaultMode;
if (empty($spelling))
$spelling = $defaultSpelling;
if (empty($jargon))
$jargon = $defaultJargon;
if (empty($encoding))
$encoding = $defaultEncoding;
function sanitize($str, $type="strict") {
switch ($type) {
case "strict":
$str = preg_replace("/[^a-zA-Z0-9_\-]/i", "", $str);
break;
case "loose":
$str = preg_replace("//i", "<", $str);
break;
case "bool":
if ($str == "true" || $str == true)
$str = true;
else
$str = false;
break;
}
return $str;
}
function getRequestParam($name, $default_value = false) {
if (!isset($_REQUEST[$name]))
return $default_value;
if (!isset($_GLOBALS['magic_quotes_gpc']))
$_GLOBALS['magic_quotes_gpc'] = ini_get("magic_quotes_gpc");
if (isset($_GLOBALS['magic_quotes_gpc'])) {
if (is_array($_REQUEST[$name])) {
$newarray = array();
foreach($_REQUEST[$name] as $name => $value)
$newarray[stripslashes($name)] = stripslashes($value);
return $newarray;
}
return stripslashes($_REQUEST[$name]);
}
return $_REQUEST[$name];
}
$result = array();
$tinyspell = new $spellCheckerConfig['class']($spellCheckerConfig, $lang, $mode, $spelling, $jargon, $encoding);
if (count($tinyspell->errorMsg) == 0) {
switch($cmd) {
case "spell":
// Space for non-exec version and \n for the exec version.
$words = preg_split("/ |\n/", $check, -1, PREG_SPLIT_NO_EMPTY);
$result = $tinyspell->checkWords($words);
break;
case "suggest":
$result = $tinyspell->getSuggestion($check);
break;
default:
// Just use this for now.
$tinyspell->errorMsg[] = "No command.";
$outputType = $outputType . "error";
break;
}
} else
$outputType = $outputType . "error";
if (!$result)
$result = array();
// Output data
switch($outputType) {
case "xml":
header('Content-type: text/xml; charset=utf-8');
$body = '';
$body .= "\n";
if (count($result) == 0)
$body .= '';
else
$body .= ''. urlencode(implode(" ", $result)) .'';
echo $body;
break;
case "xmlerror";
header('Content-type: text/xml; charset=utf-8');
$body = '';
$body .= "\n";
$body .= 'errorMsg) .'" />';
echo $body;
break;
case "html":
var_dump($result);
break;
case "htmlerror":
echo "Error";
break;
}
?>