<?php
// Form to encode/decode text dinamicaly
require_once(dirname(__FILE__).'/ascii85.class.php');
$form = get_form();
$result = isset($_POST['submit']) ? '<pre id="result">'.get_result().'</pre>' : '';
header('Content-type: text/html; charset=UTF-8');
echo <<<HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Example of ASCII85 Class usage</title>
<style type="text/css" rel="stylesheet"><!--
form { border: 1px outset #CCCCCC; padding: .5em 1em; width: 25em; }
label { vertical-align: top; }
pre { border: 1px solid #000000; padding: .5em; }
#result { border: 1px outset #CCCCCC; margin-top: 1em; padding: .5em; }
--></style>
</head>
<body>
<h1>Try it!</h1>
{$form}
{$result}
</body>
</html>
HTML;
/**
* Create a form
*/
function get_form() {
if (isset($_POST['submit'])) {
$value = htmlentities($_POST['value'], ENT_COMPAT, 'UTF-8');
$op_method1 = ($_POST['method'] == 'encode') ? ' selected="selected"' : '';
$op_method2 = ($_POST['method'] == 'decode') ? ' selected="selected"' : '';
$op_variation1 = ($_POST['variation'] == ascii85::BASIC) ? ' selected="selected"' : '';
$op_variation2 = ($_POST['variation'] == ascii85::ADOBE) ? ' selected="selected"' : '';
$op_variation3 = ($_POST['variation'] == ascii85::BTOA) ? ' selected="selected"' : '';
$split_pos = round(abs($_POST['split_pos']));
} else {
$value = '';
$op_method1 = '';
$op_method2 = '';
$op_variation1 = '';
$op_variation2 = '';
$op_variation3 = '';
$op_variation4 = '';
$split_pos = '80';
}
$op1 = ascii85::BASIC;
$op2 = ascii85::ADOBE;
$op3 = ascii85::BTOA;
return <<<HTML
<form method="post" action="test.php">
<p>
<label for="value">Value:</label>
<textarea id="value" name="value" cols="30" rows="5" >{$value}</textarea>
</p>
<p>
<label for="method">Method:</label>
<select id="method" name="method">
<option value="encode"{$op_method1}>Encode</option>
<option value="decode"{$op_method2}>Decode</option>
</select>
</p>
<p>
<label for="variation">Variation:</label>
<select id="variation" name="variation">
<option value="{$op1}"{$op_variation1}>Basic</option>
<option value="{$op2}"{$op_variation2}>Adobe</option>
<option value="{$op3}"{$op_variation3}>BTOA</option>
</select>
</p>
<p>
<label for="split_pos">Split Position:</label>
<input type="text" id="split_pos" name="split_pos" value="{$split_pos}" />
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</form>
HTML;
}
/**
* Process form
*/
function get_result() {
if ($_POST['method'] == 'encode') {
return ascii85::encode($_POST['value'], $_POST['variation'], $_POST['split_pos']);
} elseif ($_POST['method'] == 'decode') {
try {
return ascii85::decode($_POST['value'], $_POST['variation']);
} catch (Exception $e) {
return 'Error '.$e->getCode().': '.$e->getMessage();
}
} else {
return 'Undefined method "'.htmlentities($_POST['method']).'"';
}
}
|