This section describes how to display a Web form and process form input data in Latin1.
The next test I did was to try to enter Latin1 characters as Web form input.
I wrote a new test PHP script with some interesting features:
A default input text is provided with a French word in Latin1 encoding.
To avoid any encoding conversion, I used HTML entity format to provide the Latin1
encoded bytes in Hex values.
The received text from the $_REQUEST array is displayed back on the returning Web page
as encoded characters. It is also displayed in Hex values to compare with the HEX values
of the default text.
<?php #Web-Form-Input-Latin1.php
# Copyright (c) 2007 by Dr. Herong Yang, http://www.herongyang.com/
#
print('<html>');
print('<body>'."\n");
# Default input text
$input =
'Télévision';
$input_hex = '54E96CE9766973696F6E';
# Form reply determination
$reply = isset($_REQUEST["Submit"]);
# Process form input data
if ($reply) {
if (isset($_REQUEST["Input"])) {
$input = $_REQUEST["Input"];
}
}
# Display form
print('<form>');
print('<input type="Text" size="40" maxlength="64"'
. ' name="Input" value="'.$input.'"/><br/>');
print('<input type="Submit" name="Submit" value="Submit"/>');
print('</form>'."\n");
# Display reply
if ($reply) {
print('<pre>'."\n");
print('You have submitted:'."\n");
print(' Text = '.$input."\n");
print(' Text in HEX = '.strtoupper(bin2hex($input))."\n");
print(' Default HEX = '.$input_hex."\n");
print('</pre>'."\n");
}
print('</body></html>');
?>
After moving this PHP script file to Apache server document directory, I tested it with Internet Explorer (IE)
with this URL: http://localhost/Web-Form-Input-Latin1.php. I saw a Web page with a form that has the
suggested input text and a submit button.
The suggested Latin1 input characters was displayed correctly,
even it was generated by my script as HTML entities.
After clicking the submit button, I saw a returning Web page with the same form and a reply section,
which confirmed that the input text were correctly received in Latin1 encoding by the PHP script.
It is interesting to note that the return Web page has a special URL which
contains the input text inside the query string. All characters in the input text are ASCII characters
except two, which are true Latin1 characters presented as Hex values in the URL.