En esta página se muestran una parte de las soluciones de los ejercicios Controles en formularios (1), concretamente el fragmento PHP, sin el principio ni el final de la página que se puede dejar en un fragmento HTML. La solución completa se puede descargar de la página de soluciones.
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$nombre = recoge("nombre");
print " <p>Su nombre es <strong>$nombre</strong>.</p>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$ancho = recoge("ancho");
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
. " width=\"{$ancho}px\" height=\"{$ancho}px\">\n";
print " <rect x=\"0\" y=\"0\" width=\"$ancho\" height=\"$ancho\" fill=\"black\" />\n";
print " </svg>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$ancho = recoge("ancho");
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
. " width=\"" . ($ancho + 8) . "px\" height=\"" . ($ancho + 8) . "px\">\n";
print " <rect fill=\"white\" stroke=\"black\" stroke-width=\"4\" "
. "x=\"2\" y=\"2\" width=\"" . ($ancho + 4) . "\" height=\"" . ($ancho + 4) . "\" />\n";
print " </svg>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$fruta = recoge("fruta");
print " <p>Su fruta preferida es $fruta.</p>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$fruta = recoge("fruta");
print " <p><img src=\"img/frutas/$fruta\" width=\"300\"></p>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$fondo = recoge("fondo");
$letra = recoge("letra");
if ($fondo != "" && $letra != "") {
print " <p>Usted quiere cambiar: $fondo y $letra</p>\n";
} elseif ($fondo != "") {
print " <p>Usted quiere cambiar: $fondo</p>\n";
} elseif ($letra != "") {
print " <p>Usted quiere cambiar: $letra</p>\n";
} else {
print " <p>Usted no quiere cambiar nada</p>\n";
}
?>
Primera página (formulario):
<?php
$color = rand(0, 360);
print " <label><input type=\"checkbox\" name=\"fondo\" value=\"hsl($color, 100%, 90%)\"> Color del fondo de la página</label><br>\n";
print " <label><input type=\"checkbox\" name=\"letra\" value=\"hsl($color, 100%, 30%)\"> Color de la letra de la página</label>\n";
?>
Segunda página (resultado):
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$fondo = recoge("fondo");
$letra = recoge("letra");
print " <style>body { background-color: $fondo; color: $letra; }</style>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$fondo = recoge("fondo");
$letra = recoge("letra");
print " <style>body { background-color: $fondo; color: $letra; }</style>\n";
?>
<?php
function recoge($var, $m = "")
{
if (!isset($_REQUEST[$var])) {
$tmp = (is_array($m)) ? [] : "";
} elseif (!is_array($_REQUEST[$var])) {
$tmp = trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"));
} else {
$tmp = $_REQUEST[$var];
array_walk_recursive($tmp, function (&$valor) {
$valor = trim(htmlspecialchars($valor, ENT_QUOTES, "UTF-8"));
});
}
return $tmp;
}
$ancho = recoge("ancho");
$grosor = recoge("grosor");
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
. " width=\"" . ($ancho + 2 * $grosor) ."px\" height=\"" . ($ancho + 2 * $grosor) ."px\">\n";
print " <rect fill=\"white\" stroke=\"black\" stroke-width=\"$grosor\" "
. "x=\"" . ($grosor / 2) . "\" y=\"" . ($grosor / 2) . "\" width=\"" . ($ancho + $grosor) . "\" height=\"" . ($ancho + $grosor) . "\" />\n";
print " </svg>\n";
?>